【发布时间】:2019-11-08 05:44:42
【问题描述】:
我有一个脚本,每隔几个小时从 excel 文件中提取数据。但是,如果这些 excel 文件之一是打开的,我仍然希望能够从中读取。
在 python (openpyxl) 中尝试执行此操作时出现权限错误。
以下是我尝试过的。我想我可以捕获异常并创建一个我可以读取的文件的临时版本。
try:
read_from = load_workbook(fileName)
except:
tempFileName = "directory\\temp " + fileName + ".xlsx"
open(tempFileName, 'wb').write(open(fileName, 'rb').read())
read_from = load_workbook(tempFileName)
但是,即使这样,我也会收到以下错误:
----> 6 open(tempFileName, 'wb').write(open(fileName, 'rb').read())
7 read_from = load_workbook(tempFileName)
8 read_sheet = read_from.active
PermissionError: [Errno 13] Permission denied: 'directory\\testfile.xlsx'
【问题讨论】:
-
我可以使用
load_workbook访问打开的Excel 文件,但不能使用open()。您使用的是哪个版本的 openpyxl 和 Excel? -
在打开的文件上使用
read_from = load_workbook(fileName)时遇到什么错误? -
@Joe 我得到 PermissionError: [Errno 13] Permission denied for using load_workbook(fileName) on an open excel file。这适用于存储在 Onedrive 上的 office 365 excel 文件。关闭时,“read_from = load_workbook(fileName)”工作正常。
-
嗯,那么我们有两种不同的情况。我有 Excel 2013,文件在本地硬盘上。对
open()和load_workbook()同样的原因失败。
标签: python file permissions copy