【问题标题】:pandas read_excel sharing violationpandas read_excel 共享违规
【发布时间】:2019-09-14 20:37:51
【问题描述】:

我在一个 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) 为 try catch 使用上下文管理器

感谢您的建议和见解!

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 问之前看到了。这仅占问题的一部分。这建议使用上下文管理器打开基本文件,但在这种情况下,我们使用的是 pandas,我的理解是内部上下文管理器已经到位。另外,我的问题是如何解决您的答案试图避免的特定问题,所以一部分是如何避免它,缺少的部分是如何解决它
    猜你喜欢
    • 2021-09-21
    • 2020-06-02
    • 1970-01-01
    • 2013-05-09
    • 2020-05-20
    • 2020-01-20
    • 2014-07-25
    • 1970-01-01
    • 2019-01-04
    相关资源
    最近更新 更多