我正在尝试实现一个快速代码,以检查是否打开了Excel文件。打开文件后,IOError起作用,并告诉我文件已打开。此时,我可以关闭并重新打开文件。如果我没有打开文件,或者通过调用subprocess.call()或只是单击它,都出现错误。
如果没有错误提示,为什么尝试破坏它?
我尝试在尝试后关闭文件,但这也不起作用。
file_path = (r'C:\users\Desktop\Build-Temp.xlsx')
if os.path.exists(file_path) is True:
report_closed = True
try:
report_opcl = open(file_path, 'w+')
# report_opcl.close()
except IOError:
print("file open already")
report_closed = False
# if report_closed is True:
# with report_opcl:
# subprocess.call(file_path,shell=True)
错误 Excel无法打开文件“ Build-Temp.xlsx”,因为文件格式或文件扩展名无效。确认文件未损坏,并且文件扩展名与文件格式匹配。
答案 0 :(得分:1)
使用'w'
打开文件将删除文件内容。 docs将此称为“截断”。您可以改用'a'
来避免损坏(未经测试)。
无论如何,这是行不通的。到您检查report_closed
为真时,另一个进程可能已打开文件。
我认为您正在尝试解决一个无法解决的问题。无法确保将来文件(由其路径标识)可用于其他进程。