不知何故,尝试没有发现错误...除了

Somehow an error is not being picked up by try... except

我正在使用 try...except 循环来处理打开全天更新的文件。时不时会抛出“pickle data is truncated”的错误,所以我引入循环至少尝试100次:

import pandas as pd

for i in range(100):
    try:
        df = pd.read_pickle('data')
        break
    except EOFError:
        time.sleep(0.01)

不知何故在循环中间抛出了一个错误?这是一个问题,因为它停止了我全天运行的整个过程。

是否有更好的方法来尝试打开文件?它全天每隔几毫秒更新一次,我只想在出现问题时几毫秒后重试。

覆盖现有文件的更好方法(虽然仍然不是万无一失)是这样的:

import pandas as pd
import os
df.to_pickle('tmp')
os.remove('data')
os.rename('tmp','data')