成功后是否尝试关闭文件?

时间:2019-06-20 12:53:39

标签: python excel spyder

我正在尝试实现一个快速代码,以检查是否打开了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”,因为文件格式或文件扩展名无效。确认文件未损坏,并且文件扩展名与文件格式匹配。

1 个答案:

答案 0 :(得分:1)

使用'w'打开文件将删除文件内容。 docs将此称为“截断”。您可以改用'a'来避免损坏(未经测试)。

无论如何,这是行不通的。到您检查report_closed为真时,另一个进程可能已打开文件。

我认为您正在尝试解决一个无法解决的问题。无法确保将来文件(由其路径标识)可用于其他进程。