bugfix> python-3.x > 投稿

だから私はPython(3)が初めてなので、ほぼ200個のCSVファイルを処理し、それぞれを同じ名前のパイプ区切りの.txtファイルに変換するループを作成する必要があります。

私は1ファイルでこれを行い、完全に動作するコードを持っています:

import csv
with open('C:/Path/InputFile.csv', 'r') as fin, \
open('C:/Path/OutputFile.txt', 'w') as fout:
reader = csv.DictReader(fin)
writer = csv.DictWriter(fout, reader.fieldnames, delimiter='|')
writer.writeheader()
writer.writerows(reader)

前もって感謝します。

回答 1 件
  • コードを次のように変更します。

    for in_name, out_name in zip(list_of_in_names, list_of_out_names):
         with open(in_name, 'r') as fin, open(out_name, 'w') as fout:
             ...
    
    

    どこ list_of_in_names  および list_of_out_names  それぞれ読み取りおよび書き込みを行うファイルの名前。

    編集:コメントから問題に対処するには、 pathlib を使用できます  図書館:

    from pathlib import Path
    for in_path in Path('C:/Path').glob('*.csv'):
         out_path = in_path.with_suffix('.txt')
         with in_path.open('r') as fin, out_path.open('w') as fout:
             ...
    
    

あなたの答え