Как открыть временный файл программой по умолчанию на python?
К примеру во временный файл поместил QR-code, как его показать (открыть в программе по умолчанию)?
os.startfile() - выдает ошибку: "ValueError: startfile: embedded null character in filepath"
В связи с данными ответами - уточню, вопрос как открыть именно временный файл!
А не как сохранить файл и открыть его ...
import qrcode
import io
import os
data = 'Hello World!'
img = qrcode.make(data)
io_data = io.BytesIO()
img.save(io_data, 'png')
tmp_file = io_data.getvalue()
print(tmp_file)
# Открыть временный файл в программе по умолчанию
os.startfile(tmp_file)
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Используйте библиотеку tempfile:
from tempfile import NamedTemporaryFile
with NamedTemporaryFile(delete=False) as f:
...
И дальше работайте с полученным временным файлом - пишите туда ваш код, показывайте его, и не забудьте потом удалить этот файл. Примерно так, если я правильно всё понимаю:
import qrcode
import io
import os
from tempfile import NamedTemporaryFile
data = 'Hello World!'
img = qrcode.make(data)
with NamedTemporaryFile(suffix='.png', delete=False) as tmp_file:
img.save(tmp_file, 'png')
print(tmp_file.name)
tmp_file_name = tmp_file.name
# Открыть временный файл в программе по умолчанию
os.startfile(tmp_file_name)
# Удалить временный файл
os.unlink(tmp_file_name)