首页 > 解决方案 > 如何使用循环遍历文件并根据第一个索引值删除一定数量的行,然后每 100 次删除?

问题描述

无论出于何种原因,我包含的每 100 次打印到文件中的模数部分被跳过... x[0] != "*" 条件有效, count = 0 也是如此,所以我不确定是什么其他正在进行中...任何帮助将不胜感激!

list1 = ['FileA.abc','FileB.abc','FileC.abc']

for lis1 in list1:
    count = 0
    with open(lis1, "r+") as f:
        d = f.readlines()
        f.seek(0)
        for i in d:
            x = i.split(",")
            if x[0] != "*":
                f.write(i)
            elif (count = 0) or ((count % 105) = 0):
                f.write(i)
                count = count + 1
            print(count)
        f.truncate()

标签: pythonloopsfile

解决方案


当 count = 0 时,您只会增加计数,因此 count 将为 1。

之后, count 不会改变,它改变的条件是当它变成 105 的倍数时(这不会发生,因为你从一开始就没有改变它) - 你有一个语义死锁。

您可能必须更改块count外的某个位置if才能使其达到条件。


推荐阅读