删除用过的文本行或从“X”行开始下一次运行?

2024-05-29 01:49:48 发布

您现在位置: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
如果脚本完成了所有代码,就意味着我不再需要这行文本了,下次我只想跳过这行,如果删除它或者跳过它,如果可能的话,它是一个Cron Joobe脚本,所以任何解决方案都太好了!p>

Tags: csv代码intxt脚本urlforas
2条回答

据我所知,没有什么神奇的方法可以做到这一点,但您可以跟踪哪些行已经在单独的文件中处理过,然后在以后的运行中使用它(如果存在的话)跳过它们。我的意思是:

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

在你完全处理完文件后,把它擦干净就行了

在读取的每一行上重写文件要容易得多

相关问题 更多 >

    热门问题