我输入的CSV分隔符可能超出所需的分隔符(下载CSV的源存在问题,我无法更改该分隔符) 如果分隔符的数量大于13(我稍后将打印出的列数),那么我需要删除第4个分隔符(否则我的脚本将给出一个错误,并且打印出的版本都被弄乱了,第4个是额外的分隔符所在的位置) 到目前为止的代码是这样,我得到了计数,但是无法删除它。我在做什么错了?
f是for循环中许多csv文件中的一个
with open(f, "r") as file:
filedata = file.read()
for line in filedata.split("\n"):
count = line.count(";")
print(count)
limit = 13
if count > limit:
line.replace(";", "", 4)
print(line)
提前谢谢!
赖达
答案 0 :(得分:2)
str.replace
方法返回替换的字符串,而不是就地替换字符串。您应该将replace
的返回值分配回line
变量。
更改:
line.replace(";", "", 4)
收件人:
line = line.replace(";", "", 4)
答案 1 :(得分:2)
str.replace不会修改字符串。
更改
line.replace(";", "", 4)
到
line = line.replace(";", "", 4)
来自docs:
str.replace(旧,新[,计数])
返回该字符串的副本,其中所有出现的子字符串old都被new替换。如果指定了可选的参数count,则仅替换第一个出现的计数。