/
githubmirror
/
cpython
Обзор
Документация
Войти
/
githubmirror
/
cpython
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
Tools/freeze/bkfile.py
26 строк
664 B
Serhiy Storchaka
Issue #22826: The result of open() in Tools/freeze/bkfile.py is now better
20 мар 2015, 10:21
20 мар 2015, 10:21
53c3fb1
Код
Авторство
О чём код?
from builtins import open as _orig_open def open(file, mode='r', bufsize=-1): if 'w' not in mode: return _orig_open(file, mode, bufsize) import os backup = file + '~' try: os.unlink(backup) except OSError: pass try: os.rename(file, backup) except OSError: return _orig_open(file, mode, bufsize) f = _orig_open(file, mode, bufsize) _orig_close = f.close def close(): _orig_close() import filecmp if filecmp.cmp(backup, file, shallow=False): import os os.unlink(file) os.rename(backup, file) f.close = close return f