2016-11-25 6 views
0

は現在、私はそうのようなテキストファイルの数を読み、fileinputを使用して、いくつかのCSV行を記述します。Pythonでファイルの先頭を確認するには?

out_file= open('f.csv', 'wb') 
csv_w = csv.writer(out_file, delimiter="\t", encoding='utf-8' ) 
os.chdir(sys.argv[1]) 
for line in fileinput.input(glob.glob("*.txt")): 
    csv_w.writerow('something') 

これは正常に動作しますが、私は別の出力ファイルに書き込みたいです。現在のところ、ループはファイルを読み取ってから次のものに移り、1つの大きなcsvファイルに書き込むだけです。

私が現在読んでいる入力ファイルが今では別のものになっていることを知るにはどうすればよいですか(つまり、以前のファイルのEOFに達しました。私はファイル名を保存し、新しい行を読むたびにそれを確認することができましたが、Pythonには巧妙な機能が備わっていると思います。 TIA !!

+0

各入力ファイルに対して新しいcsv.writer(および新しいcsvファイル)をそれぞれ作成できます。 –

答えて

0

使用fileinput.filenameは、現在以上のループされているファイルの名前を教えします

#!/usr/bin/env python 

import fileinput 
import glob 
for line in fileinput.input(glob.glob('*')): 
    print(fileinput.filename()) 
's.txt' 
't.txt' 

「ファイル」は、ディレクトリが実際にある場合、これは失敗します。したがって、最良のIETAFFTFPの方法:

import fileinput 
import glob 
for line in fileinput.input(glob.glob('*')): 
    try: 
     print(fileinput.filename()) 
    except IsADirectoryError as e: 
     print(e) 
+0

感謝セバスチャン。古い値をチェックする以外に、変更があるかどうかを確認する方法はありますか? – schoon

関連する問題