我有一个脚本每隔几个小时从 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'
通过命令行创建文件的临时副本,然后删除临时文件似乎可以正常工作。
try:
read_from = load_workbook(fileName)
delTempFileFlag = False
except:
print("file: ",item,"is open, so cannot be accessed")
tempFileName = "directory\\temp " + fileName + ".xlsx"
command = "xcopy \"" + fileName + "\" " + "\"" + tempFileName + "*\""
os.system(command)
print("Temporary copy of file created to work with")
read_from = load_workbook(tempFileName)
delTempFileFlag = True
...
...
if delTempFileFlag == True:
os.remove(tempFileName)
delTempFileFlag = False
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)