Как проверить, открыт или закрыт файл в Python

How Check File Is Opened



Файл используется для постоянного хранения данных. Работа с файлом - очень распространенная задача любого языка программирования. В Python существует множество встроенных функций для создания, открытия, чтения, записи и закрытия файла. Для хранения данных можно создать два типа файлов. Это текстовые файлы и двоичные файлы. Любой файл необходимо открыть перед чтением или записью. В открытым() Функция используется в Python для открытия файла. С помощью открытым() Функция - это один из способов проверить, открыт или закрыт конкретный файл. Если открытым() функция открывает ранее открытый файл, затем IOError будет сгенерирован. Другой способ проверить, открыт или закрыт файл, - это проверить значения закрыто свойство объекта обработчика файлов. С использованием переименовать () функция - еще один способ проверить, открыт или закрыт файл. В этом руководстве показаны различные способы проверки открытия или закрытия любого файла в Python.

Создайте файл для проверки:

Вы можете использовать любой существующий файл или создать новый файл, чтобы протестировать пример кода, показанный в этом руководстве. Новый текстовый файл с именем clients.txt был создан со следующим содержимым для использования в следующей части учебного пособия.







ID Имя Электронная почта
01 Джони Ливер [адрес электронной почты защищен]
02 Маник Хоссейн [адрес электронной почты защищен]
03 Неха Актер [адрес электронной почты защищен]
04 Джанатул Фердус [адрес электронной почты защищен]
05 Хелал Уддин [адрес электронной почты защищен]



Пример-1: проверьте, открыт файл или нет, с помощью IOError

IOError генерируется при вызове функции open () для открытия файла, который был открыт ранее. Создайте файл python со следующим сценарием, чтобы проверить, открыт файл или нет, используя попробуй, кроме блокировать. Здесь любое существующее имя файла будет принято в качестве входных и открыто для чтения. Затем снова вызывается функция open (), чтобы открыть тот же файл, который вызовет ошибку IOError и распечатает сообщение об ошибке.



# Взять имя файла, чтобы проверить
имя файла = вход('Введите любое существующее имя файла: п')
# Открываем файл впервые с помощью функции open ()
fileHandler = открыть(имя файла,'р')
# Попытаться снова открыть файл в том же файле
пытаться:
с открытым('имя файла','р') в качествефайл:
# Распечатать сообщение об успехе
Распечатать(«Файл открыт для чтения».)
# Вызвать ошибку, если файл открыт раньше
кроме IOError:
Распечатать(«Файл уже открыт».)

Выход:

Следующий вывод появится после выполнения вышеуказанного сценария. Здесь, clients.txt существует в текущем месте, и сообщение об ошибке, Файл уже открыт, напечатал для IOError исключение.





Пример-2: проверьте, закрыт ли файл, используя свойство closed.

Ценность закрыто свойство будет истинным, если какой-либо файл закрыт. Создайте файл python с помощью следующего сценария, чтобы проверить, закрыт ли файл в текущем месте. Предыдущий пример сценария выдаст ошибку, если имя файла, полученное от пользователя, не существует в текущем местоположении. В этом примере эта проблема решена. В ты Модуль используется здесь для проверки существования имени файла, которое будет взято у пользователя. Функция check_closed () была определена для проверки того, закрыт ли файл или нет, которая будет вызываться, если файл существует.



# Импортировать модуль os для проверки существования файла
Импортировать
# Функция Drfine проверяет, закрыт файл или нет
def check_closed():
еслиfileHandler.closed == Ложь:
# Распечатать сообщение об успехе
Распечатать(«Файл открыт для чтения».)
еще:
# Распечатать сообщение об ошибке
Распечатать('Файл закрыт'.)

# Взять имя файла, чтобы проверить
имя файла = вход('Введите любое существующее имя файла: п')
# Проверить, существует ли файл
еслиos.path.exists(имя файла):
# Открываем файл для чтения
fileHandler = открыть(имя файла,'р')
# Вызов функции
check_closed()
еще:
# Распечатать сообщение, если файл не существует
Распечатать('Файл не существует.')

Выход:

Следующий вывод появится после выполнения вышеуказанного сценария. Здесь, clients.txt существует в текущем месте, и сообщение об успешном завершении Файл открыт для чтения, напечатано, потому что значение закрытого свойства вернулось Ложь .

Пример-3: проверьте, открыт файл или нет, с помощью OSError

В OSError генерируется, когда функция rename () вызывается более одного раза для уже открытого файла. Создайте файл python со следующим сценарием, чтобы проверить, открыт или закрыт файл с помощью OSError . Модуль os использовался в сценарии для проверки существования файла и его переименования. Когда переименовать () функция вызывается во второй раз, будет сгенерирована ошибка OSError, и будет напечатано настраиваемое сообщение об ошибке.

# Импортировать модуль os для проверки существования файла
Импортировать
# Установить существующее имя файла
имя файла ='clients.txt'
# Установить новое имя файла
newname ='customers.txt'
# Проверить, существует ли файл
еслиos.path.exists(имя файла):
пытаться:
# Вызываем функцию переименования в первый раз
os.rename(имя файла, новое имя)
# Вызываем функцию переименования во второй раз
os.rename(имя файла, новое имя)
# Вывести ошибку, если файл открылся
кроме OSError:
Распечатать('Файл все еще открыт'.)

еще:
# Распечатать сообщение, если файл не существует
Распечатать('Файл не существует.')

Выход:

Следующий вывод появится после выполнения вышеуказанного сценария. Здесь, clients.txt существует в текущем месте, и сообщение об ошибке, Файл все еще открыт, напечатал, потому что OSError исключение сгенерировано, когда второй переименовать () функция была выполнена.

Заключение:

Когда нам нужно работать с одним и тем же файлом в сценарии несколько раз, важно знать, открыт ли файл или закрыт. Лучше вызвать функцию close (), чтобы закрыть файл после завершения операции с файлом. Ошибка возникает, когда файл открывается во второй раз в том же скрипте, не закрывая его. В этом руководстве на простых примерах показаны различные решения этой проблемы, которые помогут пользователям Python.