如何使用线程 运行 多次使用指定数据处理同一进程

How to use threading to run the same proccess multiple times with specified data

我想制作一个脚本来从 links 从文本文件下载文件。它适用于此代码:

import urllib.request
import random
import threading

def request(line):
    urllib.request.urlretrieve(line, 'D:\example_directory\' + str(random.randint(1000000, 9999999)) + "-69" + str(random.randint(100, 999)) + "-" + str(random.randint(1000000, 9999999)) + ".mp4")

with open('D:\example_directory\links.txt') as f:
    for line in f:
        print(line)
        threading.Thread(target=request(line)).start()

此代码有效,但它不会在第一个下载完成之前开始下载第二个 link。由于不需要指定的原因,这是一个问题。

您必须将最后一行替换为 threading.Thread(target=request, args=(line,)).start()。在您的代码中,甚至在创建 Thread 对象之前就执行了请求。

你有错字 threading.Thread(target=request(line)).start() 您也可以将其替换为 Thread(target=lambda line=line: request(line))