我有数百个 csv 文件,我想在其中搜索字符串“Keyed,Bet”并将其更改为“KeyedBet”。该字符串可能在也可能不在文件中,并且可能在不同文件的不同列中。
我拼凑了下面的脚本,但它不起作用。我肯定错误地使用了 replace(),但不太清楚如何,并且在我不需要的时候创建了一个新文件 - 如果它只是更新当前文件并以相同的名称保存,那将是很好(但超出了我的初学者能力)。
我哪里错了?感谢您的帮助!
import os
import csv
path='.'
filenames = os.listdir(path)
for filename in filenames:
if filename.endswith('.csv'):
r=csv.reader(open(filename))
new_data = []
for row in r:
replace("Keyed,Bet","KeyedBet")
new_data.append(row)
newfilename = "".join(filename.split(".csv")) + "_edited3.csv"
with open(newfilename, "w") as f:
writer = csv.writer(f)
writer.writerows(new_data)
最佳答案
为什么要重新发明轮子?只需下载 sed + its dependencies , 然后
sed -i 's/Keyed,Bet/KeyedBet/ig' *.csv
编辑:上面的命令在 Linux 中应该可以正常工作。 Windows sed
要求其引用的标记是双引号,而不是单引号。
sed -i "s/Keyed,Bet,KeyedBet/ig" *.csv
关于Python:查找和替换批处理 csv 文件中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29994623/