Чтобы открыть файл на чтение, можно воспользоваться стандартной функцией open(). Она требует для открытия файла режим, в котором он будет открыт. Существует несколько режимов:
r — на чтение;w — на перезапись;a — на дозапись;b — открытие файла как бинарного;+ — дополнение права на чтение правом на запись и наоборот.Первые три права обязательны, и нужно выбрать только одно из них. Оставшиеся два необязательны.
Чтобы закрыть файл, нужно воспользоваться методом close(). Проверить, закрыт ли файл, можно с помощью свойства closed:
Посмотрим пример:
file = open('file.txt', 'r') # Открываем файл на чтение
file.close() # Закрываем файл
print(file.closed) # Выведет True
Чтобы не открывать и закрывать файл постоянно, можно воспользоваться менеджером контекста, который сам закроет файл при выходе из блока. Посмотрим, как это выглядит:
with open('file.txt', 'r') as file: # Открываем файл
print(file.readlines()) # Что-то с ним делаем
print(file.closed) # Тут файл уже закрыт
Считать файл можно несколькими способами:
# Можно считать файл целиком в одну строку с помощью метода read()
with open('file.txt', 'r') as file:
content = file.read()
print(content)
# Можно считать все строки в список с помощью метода readlines()
with open('file.txt', 'r') as file:
content = file.readlines()
print(content)
# Можно считывать файл по одной строчке с помощью метода readline()
with open('file.txt', 'r') as file:
s = file.readline()
print(s.upper())
s2 = file.readline()
print(s2.lower())
# В цикле для перебора строк достаточно перебрать файл
with open('file.txt', 'r') as file:
for line in file:
print(line.upper())
Файл:
Hello World!
Hello Universe!!!
Вывод программы:
Hello World!
Hello Universe!!!
['Hello World!\\n', 'Hello Universe!!!\\n']
HELLO WORLD!
hello universe!!!
HELLO WORLD!
HELLO UNIVERSE!!!
Запись можно осуществить тремя способами: