熊猫read_excel共享冲突

时间:2019-04-25 11:59:42

标签: python excel python-3.x pandas xlsxwriter

我在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)使用上下文管理器进行尝试

感谢您的建议和见识!

1 个答案:

答案 0 :(得分:2)

请参考This Question相同的问题。最好使用with,因为它也会在您的try块中关闭文件。

def foo():
   with open("myfile.csv", "w") as f: