Содержание

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

В Python есть несколько способов прочитать текстовый файл. В этой статье мы рассмотрим функцию open(), методы read(), readline(), readlines(), close() и ключевое слово with.

Как открыть текстовый файл в Python с помощью open()

Если вы хотите прочитать текстовый файл с помощью Python, вам сначала нужно его открыть.

Вот так выглядит основной синтаксис функции open():

open("name of file you want opened", "optional mode")

Имена файлов и правильные пути

Если текстовый файл, который нужно открыть, и ваш текущий файл находятся в одной директории (папке), можно просто указать имя файла внутри функции open(). Например:

open ("demo. txt")

На скрине видно, как выглядят файлы, находящиеся в одном каталоге:

Но если ваш текстовый файл находится в другом каталоге, вам необходимо указать путь к нему.

В этом примере файл со случайным текстом находится в папке, отличной от той, где находится файл с кодом main.py:

В таком случае, чтобы получить доступ к этому файлу в main.py, вы должны включить имя папки с именем файла.

open("text-files/random-text.txt")

Если путь к файлу будет указан неправильно, вы получите сообщение об ошибке FileNotFoundError.

Таким образом, чтобы указать путь к файлу правильно, важно отслеживать, в каком каталоге вы находитесь.

Необязательный параметр режима в open()

При работе с файлами существуют разные режимы. Режим по умолчанию – это режим чтения.

Он обозначается буквой r.

open("demo. txt", mode="r")

Вы также можете опустить mode= и просто написать «r».

open("demo.txt", "r")

Существуют и другие типы режимов, такие как «w» для записи или «a» для добавления. Мы не будем вдаваться в подробности о других режимах, потому что в этой статье сосредоточимся исключительно на чтении файлов.

Полный список других режимов можно найти в документации.

Дополнительные параметры для функции open() в Python

Функция open() может также принимать следующие необязательные параметры:

  • buffering
  • encoding
  • errors
  • newline
  • closefd
  • opener

Если вы хотите  узнать больше об этих опциональных параметрах, можно заглянуть в документацию.

[python_ad_block]

Метод readable(): проверка доступности файла для чтения

Если вы хотите проверить, можно ли прочитать файл, используйте метод readable(). Он возвращает True или False.

Следующий пример вернет True, потому что мы находимся в режиме чтения:

file = open("demo.txt")
print(file.readable())

Если бы мы изменили этот пример на режим

«w» (для записи), тогда метод readable() вернул бы False:

file = open("demo.txt", "w")
print(file.readable())

Что такое метод read() в Python?

Метод read() будет считывать все содержимое файла как одну строку. Это хороший метод, если в вашем текстовом файле мало содержимого .

В этом примере давайте используем метод read() для вывода на экран списка имен из файла demo. txt:

file = open("demo.txt") print(file.read())

Запустим этот код и получим следующий вывод:

# Output:
# This is a list of names:
# Jessica
# James
# Nick
# Sara

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

Если мы изменим предыдущий пример, мы сможем вывести только первое слово, добавив число 4 в качестве аргумента для

read().

file = open("demo. txt")
print(file.read(4))
# Output:
# This

Если аргумент размера опущен или число отрицательное, то будет прочитан весь файл.

Что такое метод close() в Python?

Когда вы закончили читать файл, необходимо его закрыть. Если вы забудете это сделать, это может вызвать проблемы и дальнейшие ошибки.

Вот пример того, как закрыть файл demo.txt:

file = open("demo.txt")
print(file.read())
file.close()

Как использовать ключевое слово with в Python

Один из способов убедиться, что ваш файл закрыт, – использовать ключевое слово with. Это считается хорошей практикой, потому что файл закрывается не вручную, а автоматически. Более того, это просто крайне удобно и защищает вас от ошибок, которые могут возникнуть, если вы случайно забудете закрыть файл.

Давайте попробуем переписать наш пример, используя ключевое слово

with:

with open("demo. txt") as file:
    print(file.read())

Что такое метод readline() в Python?

Этот метод читает одну строку из файла и возвращает ее.

В следующем примере у нас есть текстовый файл с двумя предложениями:

This is the first line This is the second line

Если мы воспользуемся методом readline(), он выведет нам только первое предложение нашего файла.

with open("demo.txt") as file:
    print(file.readline())
# Output:
# This is the first line

Этот метод также принимает необязательный параметр размера. Мы можем изменить наш пример, добавив число 7. В таком случае программа считает и выведет нам только фразу This is

:

with open("demo. txt") as file:
    print(file.readline(7))

Что такое метод readlines() в Python?

Этот метод читает и возвращает список всех строк в файле.

Предположим, у нас есть текстовый файл demo.txt со списком покупок:

Grosery Store List: Chicken Mango Rice Chocolate Cake

В следующем примере давайте выведем наши продукты в виде списка с помощью метода readlines().

with open("demo.txt") as file:
    print(file.readlines())
# Output:
# ['Grocery Store List:\n', 'Chicken\n', 'Mangos\n', 'Rice\n', 'Chocolate Cake\n']

Как прочитать текстовый файл при помощи цикла for

В качестве альтернативы методам чтения можно использовать цикл for.

Давайте распечатаем все элементы файла demo.txt, перебирая объект в цикле for.

with open("demo.txt") as file:
    for item in file:
        print(item)

Запустим наш код и получим следующий результат:

# Output:
# Grocery Store List:
# Chicken
# Mango
# Rice
# Chocolate Cake

Заключение

Итак, если вы хотите прочитать текстовый файл в Python, вам сначала нужно его открыть.

open("name of file you want opened", "optional mode")

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

Если ваш текстовый файл находится в другом каталоге, вам необходимо указать правильный путь к нему.

Функция open() принимает необязательный параметр режима. Режим по умолчанию – чтение («r»).

Чтобы проверить, можно ли прочитать текстовый файл, вы можете использовать метод readable(). Он возвращает True, если файл можно прочитать, или False в противном случае.

Метод read() будет читать все содержимое файла как одну строку.

Также, когда вы закончите читать файл, не забудьте закрыть его. Один из способов убедиться, что ваш файл закрыт, – использовать ключевое слово with. Оно закрывает файл автоматически и вам не нужно беспокоиться об этом.

Метод readline() будет считывать только одну строку из файла и возвращать ее.

Метод readlines() прочитает и вернет все строки в файле в виде списка.

Также для чтения содержимого файлов можно использовать цикл for.

Надеемся, вам понравилась эта статья. Желаем удачи в вашем путешествии по миру Python!

Перевод статьи «Python Open File – How to Read a Text File Line by Line».

Чтение данных из файла и запись в файл. Программирование на Python

Создание файла

В Python, чтобы создать файл, надо его открыть в режиме записи (‘w’, ‘wb’) или дозаписи (‘a’, ‘ab’).

f2 = open("text2.txt", 'w')

Функция open() возвращает файловый объект.

Без ‘b’ создается текстовый файл, представляющий собой поток символов. С ‘b’ — файл, содержащий поток байтов.

В Python также существует режим ‘x’ или ‘xb’. В этом режиме проверяется, есть ли файл. Если файл с определенным именем уже существует, он не будет создан. В режиме ‘w’ файл создается заново, старый при этом теряется.

>>> f1 = open('text1.txt', 'w')
>>> f2 = open('text1.txt', 'x')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
FileExistsError: [Errno 17] File exists: 'text1.
txt' >>> f3 = open('text1.txt', 'w')

Чтение данных из файла

Если в функцию open() не передается второй аргумент, файл расценивается как текстовый и открывается на чтение.

Попытка открыть на чтение несуществующий файл вызывает ошибку.

>>> f = open("text10.txt")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IOError: [Errno 2] No such file or directory: 'text10.txt'

Перехватить возникшее исключение можно с помощью конструкции try-except.

>>> try:
...     f = open("text10.txt")
... except IOError:
...     print ("No file")
... 
No file

Получить все данные из файла можно с помощью метода read() файлового объекта, предварительно открыв файл на чтение. При этом файловый объект изменяется и получить из него данные еще раз не получится.

>>> f = open("text.txt")
>>> f
<_io.TextIOWrapper name='text.txt' mode='r' encoding='UTF-8'>
>>> fd = f. read()
>>> fd1 = f.read()
>>> fd
'Hello\n\tOne\n   Two\nThree Four\nШесть!\n'
>>> fd1
''

Методу read() может быть передан один аргумент, обозначающий количество байт для чтения.

>>> f = open("text.txt")
>>> fd = f.read(10)
>>> fd1 = f.read(5)
>>> fd
'Hello\n\tOne'
>>> fd1
'\n   T'

Метод readline() позволяет получать данные построчно.

>>> f = open("text.txt")
>>> f.readline()
'Hello\n'
>>> f.readline()
'\tOne\n'
>>> f.readline()
'   Two\n'

Принимает аргумент — число байт.

>>> f.readline(3)
'Thr'
>>> f.readline(3)
'ee '
>>> f.readline(3)
'Fou'
>>> f.readline(3)
'r\n'
>>> f.readline(5)
'Шесть'
>>> f.readline(5)
'!\n'

Метод readlines() считывает все строки и помещает их в список.

>>> f = open("text.txt")
>>> fd = f.readlines()
>>> fd
['Hello\n', '\tOne\n', '   Two\n', 'Three Four\n', 'Шесть!\n']

Может принимать количество байт, но дочитывает строку до конца.

>>> f = open("text.txt")
>>> fd = f.readlines(3)
>>> fd
['Hello\n']
>>> fd1 = f.readlines(6)
>>> fd1
['\tOne\n', '   Two\n']

Запись данных в файл

Записать данные в файл можно с помощью метода write(), который возвращает число записанных символов.

>>> f1 = open("text1.txt", 'w')
>>> f1.write("Table, cup.\nBig, small.")
23
>>> a = f1.write("Table, cup.\nBig, small.")
>>> type(a)
<class 'int'>

Файл, открытый на запись, нельзя прочитать. Для этого требуется его закрыть, а потом открыть на чтение.

>>> f1.read()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
io.UnsupportedOperation: not readable
>>> f1.close()
>>> f1 = open("text1.txt", 'r')
>>> f1.read()
'Table, cup.\nBig, small.Table, cup.\nBig, small.'

С помощью метода writelines() можно записать в файл итерируемую последовательность.

>>> a = [1,2,3,4,5,6,7,8,9,0]
>>> f = open("text2.txt",'w')
>>> f.writelines("%s\n" % i for i in a)
>>> f.close()
>>> open("text2.txt").read()
'1\n2\n3\n4\n5\n6\n7\n8\n9\n0\n'
>>> print(open("text2.txt").read())
1
2
3
4
5
6
7
8
9
0

Смена позиции в файле

>>> f = open('text.txt')
>>> f.read()
'Hello\n\tOne\n   Two\nThree Four\nШесть!\n'
>>> f.close()
>>> f = open('text.txt')
>>> f.seek(10)
10
>>> f.read()
'\n   Two\nThree Four\nШесть!\n'

Двоичные файлы

Пример копирования изображения:

>>> f1 = open('flag.png', 'rb')
>>> f2 = open('flag2.png', 'wb')
>>> f2.write(f1.read())
446
>>> f1.close()
>>> f2.close()

Модуль struct позволяет преобразовывать данные к бинарному виду и обратно.

>>> f = open('text3.txt', 'wb')
>>> f.write('3')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' does not support the buffer interface
>>> d = struct. pack('>i',3)
>>> d
b'\x00\x00\x00\x03'
>>> f.write(d)
4
>>> f.close()
>>> f = open('text3.txt')
>>> d = f.read()
>>> d
'\x00\x00\x00\x03'
>>> struct.unpack('>i',d)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' does not support the buffer interface
>>> f = open('text3.txt', 'rb')
>>> d = f.read()
>>> d
b'\x00\x00\x00\x03'
>>> struct.unpack('>i',d)
(3,)

Открыть файл Python

❮ Назад Далее ❯


Открыть файл на сервере

Предположим, у нас есть следующий файл, расположенный в той же папке, что и Python:

demofile.txt

Здравствуйте! Добро пожаловать в demofile.txt
Этот файл предназначен для тестирования.
Хорошо Удача!

Чтобы открыть файл, используйте встроенную функцию open() .

Функция open() возвращает файловый объект, который имеет read() метод чтения содержимого файла:

Пример

f = open(«demofile. txt», «r»)
print(f.read())

Выполнить пример »

Если файл находится в другом месте, вам нужно указать путь к файлу, например:

Пример

Открыть файл в другом месте:

f = open(«D:\\myfiles\welcome.txt», «r»)
print(f.read())

Выполнить Пример »


Части файла только для чтения

По умолчанию метод read() возвращает весь текст, но вы также можете указать, сколько символов вы хотите вернуть:

Пример

Вернуть 5 первых символов файла:

f = open(«demofile.txt», «r»)
print(f.read( 5 ))

Выполнить Пример »



Чтение строк

Вы можете вернуть одну строку с помощью метода readline() :

Пример

Прочитать одну строку файла:

f = open(«demofile.txt», «r»)
print (f.readline())

Пример запуска »

Путем вызова readline() два раза, вы можете прочитать две первые строки:

Пример

Прочитать две строки файла:

f = open(«demofile. txt», «r»)
print(f.readline())
print(f.readline())

Пример выполнения »

Перебирая строки файла, вы можете прочитать весь файл, строка за строкой:

Пример

Пройтись по файлу строка за строкой:

f = open(«demofile.txt «, «r»)
для x в f:
  print(x)

Пример запуска »


Закрыть файлы

Рекомендуется всегда закрывать файл после завершения работы с ним.

Пример

Закройте файл, когда закончите с ним:

f = open(«demofile.txt», «r»)
print(f.readline())
f.close()

Пример выполнения »

Примечание: Всегда следует закрывать файлы, в некоторых случаях из-за буферизации изменения, внесенные в файл, могут не отображаться, пока вы не закроете файл.


❮ Предыдущий Далее ❯


ВЫБОР ЦВЕТА



Лучшие учебники
Учебник по HTML
Учебник по CSS
Учебник по JavaScript
Учебник How To
Учебник по SQL
Учебник по Python
Учебник по W3. CSS
Учебник по Bootstrap
Учебник по PHP
Учебник по Java
Учебник по C++
Учебник по jQuery

9003 900 Справочник по HTML
Справочник по CSS
Справочник по JavaScript
Справочник по SQL
Справочник по Python
Справочник по W3.CSS
Справочник по Bootstrap
Справочник по PHP
Цвета HTML
Справочник по Java
Справочник по Angular
Справочник по jQuery

Лучшие примеры
Примеры HTML
Примеры CSS
Примеры JavaScript
Примеры инструкций
Примеры SQL
Примеры Python
Примеры W3.CSS
Примеры Bootstrap
Примеры PHP
Примеры Java
Примеры XML
Примеры jQuery

2 FORUM | О

W3Schools оптимизирован для обучения и обучения. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно пересматриваются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего содержания. Используя W3Schools, вы соглашаетесь прочитать и принять наши условия использования, куки-файлы и политика конфиденциальности.

Copyright 1999-2023 Refsnes Data. Все права защищены.
W3Schools работает на основе W3.CSS.

Открыть файл в Python

Связанные статьи

Улучшить статью

Сохранить статью

  • Уровень сложности: Easy
  • Последнее обновление: 15 ноя, 2022

  • Читать
  • Обсудить
  • Улучшить статью

    Сохранить статью

    Python предоставляет встроенные функции для создания, записи и чтения файлов. Есть два типа файлов, которые можно обрабатывать в Python: обычные текстовые файлы и двоичные файлы (написанные на двоичном языке, 0 и 1).

    • Текстовые файлы: В файлах этого типа каждая строка текста завершается специальным символом EOL (End of Line) , который по умолчанию является символом новой строки (‘\n’) в Python. . В случае CSV (файлы, разделенные запятыми, EOF по умолчанию является запятой.
    • Двоичные файлы: В этом типе файлов нет терминатора для строки, и данные сохраняются после преобразования их в машинный формат. понятный бинарный язык, т. е. формат 0 и 1.

    Обратитесь к приведенным ниже статьям, чтобы получить представление об основах работы с файлами.

    • Основы работы с файлами
    • Чтение и запись в файл

    Открытие файла

    Открытие файла означает подготовку файла к чтению или записи. Это можно сделать с помощью функции open(). Эта функция возвращает файловый объект и принимает два аргумента, один из которых принимает имя файла, а другой принимает режим (режим доступа). Теперь возникает вопрос, что такое режим доступа? Режимы доступа определяют тип операций, возможных в открытом файле. Это относится к тому, как файл будет использоваться после его открытия. Эти режимы также определяют расположение Дескриптор файла в файле. Дескриптор файла подобен курсору, который определяет, откуда данные должны быть прочитаны или записаны в файле. В python есть 6 режимов доступа.

    • Только чтение («r»): Открыть текстовый файл для чтения. Ручка располагается в начале файла. Если файл не существует, возникает ошибка ввода-вывода. Это также режим по умолчанию, в котором файл открывается.
    • Чтение и запись («r+»): Открыть файл для чтения и записи. Ручка располагается в начале файла. Вызывает ошибку ввода-вывода, если файл не существует.
    • Только запись («w»): Открыть файл для записи. Для существующих файлов данные усекаются и перезаписываются. Ручка располагается в начале файла. Создает файл, если файл не существует.
    • Запись и чтение («w+»): Открытие файла для чтения и записи. Для существующих файлов данные усекаются и перезаписываются. Ручка располагается в начале файла.
    • Только добавление (‘a’): Открыть файл для записи. Файл создается, если он не существует. Ручка располагается в конце файла. Записываемые данные будут вставлены в конце после существующих данных.
    • Добавление и чтение (‘a+’): Открытие файла для чтения и записи. Файл создается, если он не существует. Ручка располагается в конце файла. Записываемые данные будут вставлены в конце после существующих данных.
    • Только чтение в двоичном формате («rb»):   Позволяет пользователю открыть файл для чтения в двоичном формате.
    • Чтение и запись в двоичном формате («rb+»): Позволяет пользователю открыть файл для чтения и записи в двоичном формате.
    • Только запись в двоичном формате («wb»): Позволяет пользователю открыть файл для записи в двоичном формате. Когда файл открывается в этом режиме, в основном могут произойти две вещи. Новый файл создается, если файл не существует. Содержимое файла будет перезаписано, если файл существует и в нем хранятся некоторые данные.
    • Запись и чтение в двоичном формате («wb+»):   Позволяет пользователю открывать файл для чтения и записи в двоичном формате. Когда файл открывается в этом режиме, в основном могут произойти две вещи. Новый файл создается для записи и чтения, если файл не существует. Содержимое файла будет перезаписано, если файл существует и в нем хранятся некоторые данные.
    • Добавить только в двоичном формате («ab»): Позволяет пользователю открыть файл для добавления в двоичном формате. Новый файл создается, если файла нет. Данные будут вставлены в конец, если файл существует и в нем хранятся некоторые данные.
    • Добавление и чтение в двоичном формате («ab+»): Позволяет пользователю открыть файл для добавления и чтения в двоичном формате. Будет создан новый файл для чтения и добавления, если файл не существует. Мы можем читать и добавлять, если файл существует и в нем хранятся некоторые данные.

    Синтаксис:

     File_object = open(r"File_Name", "Access_Mode") 

    Примечание: Файл должен находиться в том же каталоге, что и скрипт Python, в противном случае полный адрес файла должен быть написано. Если файл не существует, то генерируется ошибка, что файл не существует.

    Пример №1: Открытие файла в режиме чтения в Python.

    Python3

     

     

     

    file1 = open ( "myfile.txt" )

     

    print (file1.read())

     

    file1.close()

    Результат:

     Добро пожаловать в GeeksForGeeks!! 

    Примечание. В приведенном выше примере мы не указали режим доступа. По умолчанию функция open() открывает файл в режиме чтения, если параметр не указан.

    Пример №2: Добавление данных в существующий файл в Python

    Если вы хотите добавить больше данных в уже созданный файл, тогда режим доступа должен быть «a», который является режимом добавления, если мы выбираем « w’, то существующий текст будет перезаписан новыми данными.