Python 删除使用过的文本行或从“开始”;X";下一轮的路线?

Python 删除使用过的文本行或从“开始”;X";下一轮的路线?,python,Python,我的代码: with open('holiday.txt') as fp: for category, url in csv.reader(fp): ...code.... ...code.... Now I'm Done With This Line. Delete / Or Skip Next Time 如果脚本完成了所有的代码,这意味着我不再需要这一行文本,下次我只想跳过这一行,删除

我的代码:

       with open('holiday.txt') as fp:
            for category, url in csv.reader(fp):
                 ...code....
                 ...code....
Now I'm Done With This Line. Delete / Or Skip Next Time

如果脚本完成了所有的代码,这意味着我不再需要这一行文本,下次我只想跳过这一行,删除它或跳过它,如果可能的话,这是一个cronjob脚本,所以任何有效的解决方案都是很棒的

完全处理完文件后,只需将其擦干净即可


在每次读取时重写文件要容易得多。

据我所知,没有神奇的方法可以做到这一点,但您可以跟踪在单独的文件中已处理的行,然后在后续运行中使用它跳过这些行。以下是我的意思:

import csv
import os

processed_lines = set()
if os.path.exists('processed_lines.txt'):
    with open('processed_lines.txt') as lines_fp:
        processed_lines.update(int(line_no) for line_no in lines_fp)

with open('processed_lines.txt', 'a') as lines_fp, \
     open('holiday.txt', 'rb') as fp:
    for line_no, (category, url) in enumerate(csv.reader(fp), 1):
        if line_no not in processed_lines:
            # process the line
            # ...
            lines_fp.write(str(line_no)+'\n')  # add it to processed lines file

请修正你的缩进。您引用的行超出了该行有意义存在的范围。另外,请准确解释您正试图做什么。
holiday.txt
是否只包含一行代码?@inspectorG4dget holiday.txt包含很多行,不确定缩进问题?这只是我的代码的一部分。如果我在脚本运行过程中出错或者在第500行说。下一次运行将再次执行:)我真的需要在完成重要的操作后删除或跳过它:)@PeakDermutag没有真正的方法。只需在实际文件中查找错误并删除该行,或者在代码中添加try/catch块。@qwertni我认为某种保存机制会很好,就像将它所在行的编号保存到其他文本文件中一样,如果我启动脚本,它会检查它所在的最后一行?