来自临时文件

时间:2016-01-04 00:11:12

标签: python twitter python-2.x temporary-files twython

所以我正在编写一个机器人,从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']

工作,但不是“创建一个临时文件,在使用后立即被删除”整个临时文件?我错过了什么/做错了什么?

1 个答案:

答案 0 :(得分:0)

写入会提升文件位置,因此您必须执行

with tempfile.TemporaryFile() as f:
    f.write(data_to_write)
    f.seek(0)
    read_data = f.read()