如何检查文件是否关闭?

时间:2019-09-29 11:37:02

标签: python file-handling

请使用代码检查文件是否打开并关闭的帮助我。我尝试了以下代码,但无法正常工作。我只需要python检查chat.xls文件是否已打开,如果为true,则python应该关闭chat.xls。请帮助,这是我尝试过的

closeXl = r"C:\Users\R\Downloads\Chat.xls"
if not closeXl.closed:
    closeXl.close()

AttributeError:“ str”对象没有“关闭”属性

3 个答案:

答案 0 :(得分:1)

您的AttributeError似乎表明您应该在文件句柄上执行.close()而不是路径字符串。

closeXl = r"C:\Users\R\Downloads\Chat.xls"
file = open(closeX1)

if not file.closed:
    file.close()

在大多数情况下,使用with语句是一个更好的解决方案。它会在程序段末尾自动关闭文件。

closeXl = r"C:\Users\R\Downloads\Chat.xls"
with open(closeX1) as file:
   pass  # your code here

如果要检查是否已从另一个进程以读写方式打开文件并因此将其锁定,则应查看以下内容: https://www.calazan.com/how-to-check-if-a-file-is-locked-in-python/

答案 1 :(得分:1)

您应先打开文件,然后再访问closed属性

>>> f = open('1.txt')
>>> f
<open file '1.txt', mode 'r' at 0x10de8c6f0>
>>> f.closed
False
>>> f.close()
>>> f.closed
True

答案 2 :(得分:0)

file_object.closed仅适用于由同一Python进程打开的文件。在某些时候,您应该完成f = open(r"C:\Users\R\Downloads\Chat.xls")(如果没有完成,.closed应该行不通)。然后,您可以检查if not f.closed: