如何异步写入CSV

时间:2018-01-13 19:15:17

标签: python-3.x csv asynchronous web-scraping hyperthreading

我必须测试大约一百万个可能的网址。如果网址有效,我想将其存储在CSV中。 为了加快速度,我想异步使用。 使用for循环运行代码时工作正常,但如果我异步运行它,则CSV为空。

    #Declare CSV
import csv
csvFile = open('example.tsv', 'w', newline='')
    csvWriter = csv.writer(csvFile, delimiter='\t', lineterminator='\n\n')

    def parse(url):
        #get url's <title>
        data = getTitle(url)
        #if record is found

        if(data.title.string != "RECORD INACTIVE" or data.title.string != "FOUND"):
            csvWriter.writerow([url])


    with ProcessPoolExecutor(max_workers=4) as executor:
        {executor.submit(parse, url): url for url in URLS} 

当我运行Asunchronously时,CSV文件为空。

但如果我使用fro循环运行它会有效:

for url in URLS:
    parse(ul)

0 个答案:

没有答案