1

CSV ファイルを読み込んで、次を使用して再コンパイルしたいと思います。

re.sub('\s+(STREET|ST|TRAIL|TRL|TR)\s*$', '', test_file, flags=re.M)

私は得ています:

TypeError: expected string or buffer 

使用時:

import csv
reader = csv.reader(open("some.csv", "rb"))
for row in reader:
    print row

import csv
writer = csv.writer(open("some.csv", "wb"))
writer.writerows(someiterable)

関数が必要なようです。誰にもいくつかの提案がありますか?

4

1 に答える 1

0

re.sub()オブジェクトの行である可能性がある 3 番目の引数に文字列を渡す必要がありreaderます。すでにwriter置換を行う iterable に渡すことができます:

import csv
reader = csv.reader(open("input.csv", "rb"))
writer = csv.writer(open("output.csv", "wb"))
test = '\s+(STREET|ST|TRAIL|TRL|TR)\s*$'
writer.writerows( (re.sub(test, '', line[0], flags=re.M) for line in reader) )
于 2013-08-07T17:01:21.927 に答える