我的代码:
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脚本,所以任何有效的解决方案很棒!
答案 0 :(得分:1)
我知道没有神奇的方法可以做到这一点,但你可以跟踪已在单独文件中处理过的行,然后使用它(如果存在的话)在后续运行中跳过它们。这是我的意思概述:
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
答案 1 :(得分:0)
完成文件后,只需将其擦干净即可。
在读取的每一行上重写文件要容易得多。