我在excel文件中有几个时间序列。我的目标是检查Excel文件是否存在。如果是这样,则使用pd.read_excel
加载它,如果没有,则调用远程服务器下载数据,然后将其存储到excel文件中。
尝试遵循“请求未经允许的宽恕”反模式,请执行以下操作:
try:
citi_px = pd.read_excel(open('citi_credit_px.xlsx', 'rb'), sheet_name='data')
startdate = yesterday
except IOError:
startdate = whatever
它似乎按预期工作。但是,我在文件上的工作表名称错误,引发了ValueError
,现在Excel文件已被Python锁定,因此我无法对其进行修改或删除。显而易见的解决方法是制作副本并修改副本,但我想知道什么是正确的方法:
1)使用Pandas / Python Internals关闭Excel文件
2)使用上下文管理器进行尝试
感谢您的建议和见识!
答案 0 :(得分:2)
请参考This Question相同的问题。最好使用with
,因为它也会在您的try块中关闭文件。
def foo():
with open("myfile.csv", "w") as f: