如果出现次数大于数字,则从行中删除第n个字符

时间:2019-02-25 08:38:33

标签: python

我输入的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)

提前谢谢!
赖达

2 个答案:

答案 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,则仅替换第一个出现的计数。