【发布时间】:2017-01-15 14:56:43
【问题描述】:
我有一个格式如下的 csv 文件:
cat, mammal[1]
shark, fish[2]
dog, mammal[3]
tiger, mammal[4]
salmon, fish[5]
我想用方括号替换所有包含哺乳动物的行。
输出应该如下:
cat, mam
shark, fish[2]
dog, mam
tiger, mam
salmon, fish[5]
到目前为止,我有一个读/写 csv 文件的代码:
import csv
with open('animals.csv', 'r') as fin, open("out.csv",'w') as fout:
writer = csv.writer(fout)
for row in csv.reader(fin):
re.sub(???) #stuck at writing the regular expression
writer.writerow(row)
【问题讨论】:
-
为什么是 regex?只需使用
str.replace('mammal[1]', 'mam')即可满足您的要求 -
@MoinuddinQuadri 大概是因为索引并不总是
1。 -
我在 csv 文件中有一个巨大的行列表(下面的 csv 只是格式的一个示例),像这样替换它们需要几天时间
-
@Fanna1119 我看不出运行
str.replace需要几天时间...如果您想要性能,请参阅我使用writerows和生成器理解的解决方案。但我怀疑我的代码会因输入格式而窒息……您没有与我们分享。
标签: python regex python-3.x csv