0

csv ファイルに一連のテキストがあります。

7858.35924983374[%2C]1703.69341358077[%2C]-3.075},7822.85045874375[%2C]1730.80294308742[%2C]-3.53962362760298}

[%2C] を置換するためのトリックはありますか?

with open('C:\IM\C3D\CommonLibraries\unewuoxhwt5k.wi2.conduit', "rb") as fin, open('C:\IM\C3D\CommonLibraries\unewuoxhwt5k.wi2.conduit', "wb") as fout:
    reader = csv.reader(fin)
    writer = csv.writer(fout)
    for row in reader:
    new_row = []
    for item in row:
        new_row.append(item.replace('[%2C]', ','))
    print row, "->", new_row
    writer.writerow(new_row)

ファイルを取得しましたが、空で、次のエラー メッセージが表示されます。

Traceback (most recent call last):
  File "<pyshell#6>", line 6, in <module>
    for item in row:
NameError: name 'row' is not defined
4

2 に答える 2

2

できるよ

In [47]: s.replace('[%2C]', ',')
Out[47]: '7858.35924983374,1703.69341358077,-3.075},7822.85045874375,1730.80294308742,-3.53962362760298}'

これを試して...

for row in row_reader:
    new_row = []
    for item in row:
        new_row.append(item.replace('[%2C]', ','))
    print row, "->", new_row
    row_writer.writerow(new_row)
于 2013-03-04T06:22:20.473 に答える
2

string.replaceが必要です。

val.replace('[%2C]', ',')

編集:

あなたの問題を理解したので、もう少し説明します。[%2C]まず、csv モジュールが正しく解析できるように、カンマに変換します。

私が言ったように、データをきれいにする必要があります。

in_file = 'C:\IM\C3D\CommonLibraries\unewuoxhwt5k.wi2.conduit'
out_file = 'C:\IM\C3D\CommonLibraries\u2newuoxhwt5k.wi2.conduit.csv'
csv_outfile = 'C:\IM\C3D\CommonLibraries\u2newuoxhwt5k.wi2.conduit.csv.out'

with open(out_file, w) as outfile:
    with open(in_file) as infile:
        for line in infile:
            outfile.write(line.replace('[%2C]', ','))

これで、CSV 解析を実行できます。

reader = csv.reader(out_file)
writer = csv.writer(csv_outfile)
for row in reader:
    # do some processing on the row, which is a list of separated items
    new_row = row + ["another item"]
    writer.writerow(new_row)
于 2013-03-04T06:22:35.457 に答える