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()第三个参数,该参数可以是您的reader对象的一行。您已经可以传递给writer将进行替换的可迭代对象:

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 回答