2017-08-10 101 views
1

任何人都可以告诉我这段代码有什么问题。它用于在csv文件上以'READ'开头的读取行。我得到的错误是 回报_compile(图案,标志).match(串) 类型错误:预期的字符串或缓冲区预期字符串或缓冲区错误

import csv 
import re 
f1 = open("1.csv", "rb") 
reader = csv.reader(f1) 
header = reader.next() 
f2 = open("out.csv", "wb") 
writer = csv.writer(f2) 
writer.writerow(header) 
for row in reader: 
if re.match(r'^.*READ $', row): 
writer.writerow(row) 
f1.close() 
f2.close() 

回答

0

缩进你的代码号1 ...

这可能工作.. 。

import csv 
import re 

f1 = open("1.csv", "rb") 
reader = csv.reader(f1) 
header = reader.next() 
f2 = open("out.csv", "wb") 
writer = csv.writer(f2) 

writer.writerow(header) 
for row in reader: 
    if re.match(r'^.*READ $', str(row)): 
     writer.writerow(row) 

f1.close() 
f2.close() 
+0

嗨,非常感谢。它解决了错误。我想要做的是读取1.csv的CSV文件,并将该文件中的选择性行写入另一个out.csv的csv文件中。我想要过滤的行是列I以READ开头,列K不等于0000的列。需要满足这两个条件。我想忽略所有其他行,因为在我的1.csv中有12000行是输入。它是否正确地执行此操作?执行这段代码后我得到的是我创建了一个新文件out.csv,只有头文件。我的out.csv文件中没有其他信息 – Muscles

相关问题