为什么多线程在我的代码中效率不高



因此,我的代码从filenames.txt中获取文件名,然后发送一个带有文件的请求并获得响应。

出于某些原因,它为一个文件上传了多次,我不明白为什么。

f = open('filenames.txt','r')
results = [x.strip() for x in f.readlines()]
def makerequest(files):
for filename in results:
files = {'file': open(filename, 'rb')}
url = 'https://www.google.com/'
r = requests.post(url,headers=headers2,files=files,cookies=cookies1)
print(r.text)
processes = []
pool = multiprocessing.dummy.Pool(10)
pool.map(makerequest, results)
pool.close()
pool.join()

我希望每个线程发送一个具有不同文件名的请求,例如

线程1上传文件1.txt

线程2上传文件2.txt

您在def makerequest(files):中发送单个文件名作为参数,但从不使用它,而是使用for循环处理每个进程中的所有文件名。您必须删除for-循环。

def makerequest(filename):
files = {'file': open(filename, 'rb')}
url = 'https://www.google.com/'
r = requests.post(url, headers=headers2, files=files, cookies=cookies1)
print(r.text)

最新更新