1

次のようなデータを含む CSV ファイルがあります。

a,b,c,d,e,f
0,0,AER,0,DME,0
0,0,ASF,0,LED,0

列 C と E から入力を取得し、それらを次のように出力するにはどうすればよいですか。

I like [column C] and [column E]
I like [column C] and [column E]

例:

I like AER and DME
I like ASF and LED

現在、次のコードがあります。

import csv

header1 =['c']
header2 =['e']

with open('routes2.csv', 'rb') as csvfilein, open('out.csv', 'wb') as csvfileout:
    reader = csv.DictReader(csvfilein)
    writer1 = csv.DictWriter(csvfileout, header1, extrasaction='ignore')
    writer2 = csv.DictWriter(csvfileout, header2, extrasaction='ignore')
    for line in reader:
        writer1.writerow(line), writer2.writerow(line)

列 C と E のデータにテキストを追加する方法を見つけようとして困っています。どうすればよいですか?

4

4 に答える 4

1

このような?

with open('routes2.csv', 'rb') as csvfilein:
reader = csv.DictReader(csvfilein)
for line in reader:
    print "I like %s and %s" % (line["c"], line["e"])

出力:

AERとDME
が好き ASFとLEDが好き

于 2013-10-14T15:05:41.430 に答える
1

出力ファイルはプレーン テキストのみで構成されているため、.csv ファイルではないため、作成に a を使用する必要はありませんcsv.DictWriterprint図のように、ステートメントの出力をファイルにリダイレクトするのも簡単です。

import csv

header1 = ['c']
header2 = ['e']
format_specifier = 'I like %({0[0]})s and %({1[0]})s'.format(header1, header2)

with open('routes2.csv', 'rb') as csvfilein, open('out.txt', 'w') as fileout:
    for row in csv.DictReader(csvfilein):
        print >> fileout, format_specifier % row
于 2013-10-14T16:15:39.990 に答える