Как проверить, если файл закрыт? - PullRequest
0 голосов
/ 29 сентября 2019

Пожалуйста, помогите мне с кодом, который проверяет, открыт ли файл, и закрывает его.Я попробовал код ниже, и он не работает.Мне просто нужен python, чтобы проверить, открыт ли файл chat.xls, и если true, python должен закрыть chat.xls. Помогите, пожалуйста, вот что я попробовалзакрытая '

Ответы [ 3 ]

1 голос
/ 29 сентября 2019

Ваш AttributeError, кажется, говорит, что вы должны выполнить .close () для дескриптора файла вместо строки пути.

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

if not file.closed:
    file.close()

В большинстве случаев лучшим решением было бы использовать-заявление.Он закрывает файл автоматически в конце блока.

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 голос
/ 29 сентября 2019

Вы должны открыть файл перед доступом к атрибуту closed

>>> f = open('1.txt')
>>> f
<open file '1.txt', mode 'r' at 0x10de8c6f0>
>>> f.closed
False
>>> f.close()
>>> f.closed
True
0 голосов
/ 29 сентября 2019

file_object.closed работает только для файлов, которые были открыты тем же процессом Python.В какой-то момент вы должны были сделать f = open(r"C:\Users\R\Downloads\Chat.xls") (если нет, .closed не должен работать).Тогда позже вы можете проверить if not f.closed:.

...