何を達成しようとしているのかわかりませんが、フォルダー内の多くのファイルをループしたい場合は、linuxfind
コマンドを使用できます。
あなたの状況の例は次のとおりです。
cd /path/to/folder/CSV
find . -name *.csv -exec your_python_script.py {} \;
これにより、すべてのファイルが検索.csv
され、それぞれに対して Python スクリプトが実行されます。
#!/bin/env python
ファイルの先頭にあることを確認し、実行sudo chmod +x your_python_script.py
して実行可能にします。
拡張機能がない場合.csv
は、次の操作を実行できます。
cd /path/to/folder/CSV
find . -exec your_python_script.py {} \;
警告されますが、これはディレクトリ内のすべてのファイル(CSV またはその他) で実行されます。
また、スクリプトを正しく理解している場合 (最終列にファイル名を追加するだけです)、これを試してください:
#!/bin/env python
import sys
import csv
filename=sys.argv[1]
output_filename='new-'+filename
output_rows = []
with open(filename, 'r') as inputfile:
with open(output_filename) as outputfile:
r = csv.reader(inputfile)
w = csv.writer(outputfile, lineterminator='\n')
for input_row in r:
output_row=input_row.append(filename)
output_rows.append(output_row)
w.writerows(output_rows)
test_python_script.py
それをあなたのCSV
フォルダに保存します。次に実行します。
cd /path/to/folder/CSV
chmod +x test_python_script.py
find . -exec test_python_script.py {} \;