我正在尝试使我的代码更具弹性,以防止您很少见到的那种问题,但这只是时间问题,直到它们发生。
这段特定的代码是从MongoDB中获取行,进行一些解析,然后将已解析的行转换为只有一行的pandas DataFrame,现在我要存储它。 HDF文件具有良好的读取属性和一些良好的写入属性(例如,追加一个DataFrame行),但我不清楚写入是否安全。
从原理上讲,这是我关注的代码:
import pandas as pd
# some stuff....
for row in mongo:
row_parsed = parse(row)
df = pd.DataFrame(row_parsed)
with pd.HDFStore(filepath) as store:
store.append(key=key, value=df, format="table")
我的问题是:这有多安全?例如,如果with
上下文内发生各种问题(例如异常或电源中断),HDF文件是否会损坏?
根据PyTables documentation,对于断电情况,答案似乎是肯定的,它可能会损坏。但是,对于各种异常或系统事件,答案应该完全取决于with
上下文在做什么,对吗?那么,我应该认为我受到保护吗?