【问题标题】:Open excel workbook in OneDrive folder using Python使用 Python 在 OneDrive 文件夹中打开 excel 工作簿
【发布时间】:2021-01-03 20:23:18
【问题描述】:

我正在尝试使用 pandas.read_excel 从 Excel 工作簿中读取数据。但是,如果工作簿存储在 OneDrive 文件夹中并同步到 OneDrive,则在已打开时无法读取。它报告错误消息

[Errno 13] 权限被拒绝:'C:\Users\Name\OneDrive\Test\Test.xlsx'

尝试打开文件时似乎失败

with open(filename, "rb") as f:

但是当我关闭工作簿时,pandas.read_excel 成功从中获取数据。并且不在 OneDrive 文件夹中的文件无论打开与否都可以随时访问。请看以下案例:

pd.read_excel(r'C:\Users\Name\Test\Book1.xlsx') # successful when book is open pd.read_excel(r'C:\Users\Name\Test\Book1.xlsx') # successful when book is closed pd.read_excel(r'C:\Users\Name\OneDrive\Book1.xlsx') # failed when book is open pd.read_excel(r'C:\Users\Name\OneDrive\Book1.xlsx') # successful when book is closed

我想知道它是否与 OneDrive 有关?有什么方法可以从存储在 OneDrive 文件夹中的打开的工作簿中读取数据?由于我也想从关闭的工作簿中读取数据,xlwings 应该不是一个好主意,是否有一种通用技术可以用来从所有 excel 工作簿中读取数据,无论是否打开,无论是否在 OneDrive 中?

【问题讨论】:

  • 您始终可以在文件关闭时读取文件,但有时只能在文件打开时读取。是否可以简单地将其关闭?
  • 或者你可以先下载excel文件,然后用python操作它
  • 问题在于 OneDrive 的工作方式。请记住,OneDrive 正在尝试将打开的文件同步到云端。所以我的“猜测”是,PermissionError 结果来自 OneDrive 的访问权限。

标签: python excel pandas onedrive


【解决方案1】:

我通过简单地关闭 excel 中的自动保存功能就成功了。

编辑:这似乎只适用于较旧的 .xls 文件,而不适用于 .xlsx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-12
    • 2017-04-29
    • 2017-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-01
    相关资源
    最近更新 更多