【发布时间】:2018-01-02 03:41:03
【问题描述】:
*请注意,我是 Python 新手......
我正在尝试为大型 CSV 文件编写脚本。 我的目标是在 CSV 的第二列中搜索(如 grep)一个复杂的 短语,其中包含一个 string,后跟一个 special character 和然后 整数 例如“Mainbalance-7-0”或“Mainbalance-8-0”
字符串始终为“Mainbalance”。
特殊字符总是“-”。
整数变化。
如果找到该短语,我想将整行输出到一个新的 csv 文件。
我在这里查看了其他答案,但找不到具体内容。
输入看起来像:
BAL,04,PSMS-5-13,0,BUCKET,WORD
BAL,03,Mainbalance-6-0,36,MAIN,WORD
BAL,020,PLUSC-122-0,36,MAIN,WORD
BAL,05,Mainbalance-7-0,36,MAIN,WORD
输出为:
BAL,03,Mainbalance-6-0,36,MAIN,WORD
BAL,05,Mainbalance-7-0,36,MAIN,WORD
我已经尝试了以下...
with open("D:/Temp/input.csv", 'rb') as f, open('D:/Temp/output.csv','wb') as outf:
writer = csv.writer(outf, delimiter=',')
reader = csv.reader(f)
for line in f:
if 'Mainbalance*' in line:
writer.writerow(line)
创建的文件没有打印任何结果。
【问题讨论】:
-
你不应该从
f阅读,你应该从reader阅读。 -
当然!对不起-我的错误-感谢您的帮助
-
@pippy5 将
f更改为reader无法完全解决您的问题,这是问题的一部分 - 对于输入 csv 中所有显示的行,'Mainbalance*' in line仍然是错误的。 -
是的,谢谢 alecxe。现在试试下面的代码。