Python Can';t在flask中创建临时文件

Python Can';t在flask中创建临时文件,python,flask,Python,Flask,我正在使用Flask创建Line机器人,并尝试用下面的代码保存图像 @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\D

我正在使用Flask创建Line机器人,并尝试用下面的代码保存图像

@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()也会发生同样的情况

那么,有人能解释一下“创建文件”是如何使用flask的吗?因为它通常不使用flask创建文件


提前感谢您,很抱歉您提出了一个新问题

请尝试使用tempfile模块解决此问题()


临时文件的创建路径看起来很奇怪。它有斜线和反斜线。你是在哪个操作系统上运行flask的?我是在Windows 10上运行的,我有点像下面这个例子:。我不知道你说的是什么意思,我是怎么跑的。抱歉@KlausD。如果我在(@)app.route或(@)处理程序之外运行mktemp,它会正常创建文件。我尝试使用以下命令:f=NamedTemporaryFile(mode='wb+',dir=static_tmp_path,delete=False),然后打印f.name,返回/app/static/tmp/tmptcip7smc。但在该目录中并没有真正创建这样的文件。
 FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\Suppavich\\Desktop/img-0fjr9rhs.jpg'
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')