import cPickle import os import time .... def dump(self, file_path): file_obj = None try: file_obj = open(file_path, 'wb') cPickle.dump(self._keys, file_obj) cPickle.dump(self._objects, file_obj) .... finally: if file_obj is not None: file_obj.close() print os.stat(file_path)[8] print os.path.getmtime(file_path) print time.time()
Результат:
1518615171
1518615171.0
1518615171.39
Фокус в том, что именно в исходном классе при срабатывании этой функции, последнее значение - time.time() меньше, чем значения модификации файла, хотя высчитывается после! Думал, может быть, данные не сбросились на диск, ну всяко бывает, использовал flush, os.fsync, не помогло. Есть ещё что-нибудь?