我想阅读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)
看起来我需要一个功能。有人有些吸烟吗?
答案 0 :(得分: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) )