因此,我的代码从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)