所以我正在编写一个机器人,从wikipedia(带请求)中提取图像并将它们发布到twitter(使用twython)。我找到this,这让我相信我可以做类似
的事情import tempfile
import twython
import requests
...
req = requests.get(img_url, stream=True)
with tempfile.TemporaryFile() as img_file:
for chunk in req:
img_file.write(req)
resp = twython_client.upload_media(media=img_file)
return resp['media_id']
但是upload_media
通话会抛出400秒。像
...
with open('tmp_img_file', 'wb') as img_file:
for chunk in req:
img_file.write(chunk)
with open('tmp_img_file', 'rb') as img_file:
resp = twython_client.upload_media(media=img_file)
os.remove('tmp_img_file')
return resp['media_id']
工作,但不是“创建一个临时文件,在使用后立即被删除”整个临时文件?我错过了什么/做错了什么?
答案 0 :(得分:0)
写入会提升文件位置,因此您必须执行
with tempfile.TemporaryFile() as f:
f.write(data_to_write)
f.seek(0)
read_data = f.read()