如何使用线程 运行 多次使用指定数据处理同一进程
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))
我想制作一个脚本来从 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))