CSV ファイルをタブ区切りファイルに変換するためのコードがいくつかあります。私の問題は、正しい値を正しい順序で書き込む方法がわからないことです。これが私のコードです:
for file in import_dir:
data = csv.reader(open(file))
fields = data.next()
new_file = export_dir+os.path.basename(file)
tab_file = open(export_dir+os.path.basename(file), 'a+')
for row in data:
items = zip(fields, row)
item = {}
for (name, value) in items:
item[name] = value.strip()
tab_file.write(item['name']+'\t'+item['order_num']...)
tab_file.write('\n'+item['amt_due']+'\t'+item['due_date']...)
現在、両方のwrite
ステートメントがfor row in data
ループ内にあるため、ヘッダーが何度も書き込まれています。
最初のwrite
ステートメントをアウトデントすると、明らかなフォーマット エラーが発生します。
2 番目のステートメントを最初のステートメントの上に移動してwrite
アウトデントすると、データの順序が乱れます。最初のステートメントがヘッダーとして 1 回書き込まれ、2 番目のステートメントが CSV ファイルの各行に書き込まれる
ようにするにはどうすればよいですか? write
辞書を壊さずに、ループの外側で最初の 'write' ステートメントを抽出するにはどうすればよいですか? ありがとう!