繁体   English   中英

无法在烧瓶中创建临时文件

[英]Can't create tempfile in flask

我正在使用Flask创建Line Bot,并尝试使用以下代码保存图像

@handler.add(MessageEvent, message=ImageMessage)
def handle_image_message(event):
    count = 0
    message_content = line_bot_api.get_message_content(event.message.id)
    img_tmp = mktemp(dir=r'C:\Users\Suppavich\Desktop',prefix='img-',suffix='.jpg')
    f = open(img_tmp,'wb')
    for chunk in message_content.iter_content():
         f.write(chunk)
    print('success')
    print(f.name)
    f.close()

但是mktemp()并没有按预期在桌面上真正创建空文件,因此在尝试打开img_tmp时发生错误。

对于NamedTemporaryFile()也确实如此

 FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\Suppavich\\Desktop/img-0fjr9rhs.jpg'

...

那么,谁能解释烧瓶的“创建文件”工作原理? 因为它通常可以不使用flask创建文件。

在此先感谢您,并为一个新手问题感到抱歉

尝试为此使用tempfile模块( https://docs.python.org/3/library/tempfile.html

import tempfile

@handler.add(MessageEvent, message=ImageMessage)
def handle_image_message(event):
    count = 0
    message_content = line_bot_api.get_message_content(event.message.id)

    with tempfile.TemporaryFile(dir='your_path', suffix='.jpg', prefix='img-') as fp:
        for chunk in message_content.iter_content():
             fp.write(chunk)
    print('success')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM