Автоудаление временного файла в Python
| Python
Простая программа на Python которая создаёт временный файл в файловой системе. Если скрипт самостоятельно завершает работу, то он автоматически удаляется, если скрипт прекращает работу из диспетчера процессов ОС, то временный файл также удаляется.
import os
import tempfile
import atexit
def main():
# Создаем временный файл
fd, temp_file_path = tempfile.mkstemp()
# Регистрируем функцию для удаления файла при выходе
def cleanup():
os.close(fd)
os.remove(temp_file_path)
atexit.register(cleanup)
print(f"Создан временный файл: {temp_file_path}")
# Ваш код, использующий временный файл, здесь
if __name__ == "__main__":
main()
Комментарии:
-
tempfile.mkstemp()
: Эта функция создает временный файл и возвращает файловый дескриптор (fd) и путь к файлу. -
atexit.register(cleanup)
: Эта функция регистрирует функциюcleanup
для выполнения при выходе из программы. -
cleanup()
: Эта функция закрывает файловый дескриптор и удаляет временный файл.
Как это работает:
- При запуске скрипта, создается временный файл.
- Функция
cleanup()
будет вызвана автоматически при завершении скрипта, независимо от того, завершился ли он самостоятельно или был прерван. - Функция
cleanup()
гарантирует, что временный файл будет удален.
Важно: Этот код работает только для текущего процесса Python. Если вы запустите другой процесс, который использует этот же файл, удаление файла может привести к ошибкам.