如何在某一行之后将行写入文本文件#?

时间:2015-11-27 04:35:16

标签: python csv

我目前正在一个非常错误的互联网服务的地方度过这一周,同时试图抓住项目的在线数据。特别是,我正在访问URL列表中的每个URL,并从每个网站抓取特定的数据片段以放入CSV。 URL列表相当大(33,000多个URL),我发现当互联网出现故障时,我很难找到离开的地方。有没有办法快速完成?这就是我所拥有的:

def makeCSV(csv_src):
#END_TOKEN = " __END__ENTRY__"
with open(new_src, 'r') as f, open(csv_src, 'a') as fcsv:
    count = 40
    for i, url in enumerate(f):
        while i >= count and count < len(f.readlines()):
            count += 1
            wr = csv.writer(fcsv, quoting=csv.QUOTE_ALL)
            speaking, studying, entry, incorrect, correct = mineLearnerData(url)
            data = [speaking, studying, incorrect, correct]
            wr.writerow(data)
            #f2.write(str(entry + END_TOKEN) + '\n')
            print(count)
f.close(); fcsv.close()

'f'代表我正在使用的网址文件。我将该文件中的URL中的特定信息发送到指定的CSV文件路径。 'Count'表示要查看的下一个URL。理想情况下,我也希望能够使用行len(fcsv.readlines()),但我不断收到ascii错误。

另外,我愿意接受有关如何做到这一点的有效方法的建议,因为我对数据收集和数据采集并不熟悉。清洁过程。

1 个答案:

答案 0 :(得分:0)

多次调用f.readlines()

CSV不是适合修改的格式。您只应将其用于导入/导出数据。

对于您的用例,我将使用轻量级进程内数据库,例如sqlite3,它提供事务和崩溃恢复。