4

私は次のPythonコードを持っています。csvファイルを読み取り、最初の列を新しいcsvファイルに出力します。

しかし、問題は私のcsvファイルにあり、\n新しい行を作成するための新しい行は別としてあります。ただし、二重引用符で囲まれています。

たとえば、次のようになります。

A, B, C,
D, "12
34", E,
F, G, H

だから私はどこかにquotechar='"'を追加する必要があると思いますが、それを理解することができませんでした。

f_in = open('source.csv')

fields = []

for line in f_in.readlines():
    fields.append([item.strip('\n') for item in line.split(',')])
f_in.close()

f_out = open('sourceNew.csv', 'w')

for i in range(len(fields)):
    if fields[i][0] != '':
        f_out.write(fields[i][0] + ',,\n')


f_out.close()

二重引用符で囲まれた実際の新しい行\nと\nを区別するにはどうすればよいですか。

ありがとう

4

3 に答える 3

7

Python CSVモジュールを使用します。

import csv

records = []
reader = csv.reader(open('source.csv', 'rb'))

for record in reader:
    print record
    records.append(record)

これが役立つことを願っています。

于 2012-11-20T12:10:13.240 に答える
0

はい、そうでした。

import csv

f_in  = csv.reader (open('source.csv'), quotechar='"')

fields = []

for line in f_in:
    fields.append(line)

f_out = open('sourceNew.csv', 'w')

for i in range(len(fields)):
    if fields[i][0] != '':
        f_out.write(fields[i][0] + ',,\n')


f_out.close()import csv

f_in  = csv.reader (open('source.csv'), quotechar='"')

fields = []

for line in f_in:
    fields.append(line)

f_out = open('sourceNew.csv', 'w')

for i in range(len(fields)):
    if fields[i][0] != '':
        f_out.write(fields[i][0] + ',,\n')


f_out.close()

ありがとう。

于 2012-11-20T12:11:52.170 に答える