Если вы хотите создавать временные файлы в Python, в стандартных библиотеках Python есть модуль с именем tempfile . Если вы хотите запускать другие программы для работы с файлом, используйте tempfile.mkstemp () для создания файлов и os.fdopen () для доступа к файловым дескрипторам, которые дает вам mkstemp ().
Кстати, вы говорите, что запускаете команды из программы на Python? Вы почти наверняка должны использовать модуль подпроцесс .
Так что вы можете довольно весело написать код, который выглядит так:
import subprocess
import tempfile
import os
(fd, filename) = tempfile.mkstemp()
try:
tfile = os.fdopen(fd, "w")
tfile.write("Hello, world!\n")
tfile.close()
subprocess.Popen(["/bin/cat", filename]).wait()
finally:
os.remove(filename)
Запустив его, вы обнаружите, что команда cat
работала отлично, но временный файл был удален в блоке finally
. Имейте в виду, что у вас есть для удаления временного файла, который mkstemp () возвращает самостоятельно - у библиотеки нет возможности узнать, когда вы закончите с этим!
(Редактировать: я предполагал, что NamedTevenFile сделал именно то, что вам нужно, но это может быть не очень удобно - файл удаляется сразу после закрытия объекта временного файла, и другие процессы открывают файл перед вами » закрыто, он не будет работать на некоторых платформах, особенно Windows. Извините, с моей стороны произошел сбой.)