Работа с текстовыми файлами Python 3
Независимо от того, какое приложение вы используете, гарантировано, что в процессе его работы будет задействован ввод или вывод данных. В этом руководстве кратко описываются форматы, которые может обрабатывать Python. Затем мы рассмотрим, как открывать, считывать и записать текстовый файл в Python 3.
Работа с текстовыми файлами Python 3 -исходные ресурсы
Для этого руководства нужно установить Python 3. Также на вашем компьютере должна быть установлена локальная среда программирования.
Основа
Python может с относительной легкостью обрабатывать различные форматы файлов:
Тип файла | Описание |
Txt | Обычный текстовый файл хранит данные, которые представляют собой только символы (или строки) и не включает в себя структурированные метаданные. |
CSV | Файл со значениями,для разделения которых используются запятые (или другие разделители). Что позволяет сохранять данные в формате таблицы. |
HTML | HTML-файл хранит структурированные данные и используется большинством сайтов |
JSON | JavaScript Object Notation - простой и эффективный формат, что делает его одним из часто используемых для хранения и передачи данных. |
В этой статье основное внимание будет уделено формату txt.
Шаг 1 - Создание текстового файла
Сначала нужно подготовить файл для работы. Для этого мы откроем любой текстовый редактор для python и создадим новый txt-файл, назовем его days.txt.
В этом файле необходимо ввести несколько строк. В приведенном ниже примере мы перечислим дни недели:
days.txt
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
Затем сохраните файл. В нашем примере пользователь sammy сохранил файл здесь: /users/sammy/days.txt. Это будет важно на последующих этапах, когда откроем файл в Python.
Шаг 2 - Открытие файла
Прежде чем написать программу, нужно создать файл для кода Python. С помощью текстового редактора создадим файл files.py. Чтобы упростить задачу, сохраните его в том же каталоге, что и файл days.txt:
/users/sammy/.
Чтобы открыть файл, сначала нужно каким-то образом связать его с переменной в Python. Этот процесс называется открытием файла. Сначала мы укажем Python, где находится файл.
Чтобы Python мог открыть файл, ему требуется путь к нему: days.txt -/users/sammy/days.txt. Затем создаем строковую переменную для хранения этой информации. В нашем скрипте files.py мы создадим переменную path и установим для нее значение days.txt.
files.py
path = '/users/sammy/days.txt'
Затем используем функцию Python open(), чтобы открыть файл days.txt. В качестве первого аргумента она принимает путь к файлу.
Эта функция также позволяет использовать многие другие параметры. Но наиболее важным является параметр, определяющий режим открытия файла. Он зависит от того, что вы хотите сделать с файлом.
Вот некоторые из существующих режимов:
- 'r': использовать для чтения;
- 'w': использовать для записи;
- 'x': использование для создания и записи в новый файл;
- 'a': использование для добавления к файлу;
- 'r +': использовать для чтения и записи в тот же файл.
В текущем примере нужно только считать данные из файла, поэтому будем использовать режим «r». Применим функцию open(), чтобы открыть файл days.txt и назначить его переменной days_file.
files.py
days_file = open(path,'r')
После открытия файла мы сможем прочитать его, что сделаем на следующем шаге.
Шаг 3 - Чтение файла
Файл был открыт, и мы можем работать с ним через переменную, которую мы ему присвоили. Python предоставляет три связанные операции для чтения информации из файла. Покажем, как использовать каждую из них.
Первая операция <file>.read() возвращает все содержимое файла как одну строку.
days_file.read()
Вывод
'MondaynTuesdaynWednesdaynThursdaynFridaynSaturdaynSundayn'
Вторая операция <file>.readline() возвращает следующую строку файла (текст до следующего символа новой строки, включая сам символ). Проще говоря, эта операция считывает файл по частям.
days_file.readline()
Вывод
'Mondayn'
Поэтому, когда вы прочтете строку с помощью readline, она перейдет к следующей строке. Если вы снова вызовете эту операцию, она вернет следующую строку, прочитанную в файле.
days_file.readline()
Вывод
'Tuesdayn'
Последняя операция, <file>.readlines(), возвращает список строк в файле. При этом каждый элемент списка представляет собой одну строку.
days_file.readlines()
Вывод
['Mondayn', 'Tuesdayn', 'Wednesdayn', 'Thursdayn', 'Fridayn', 'Saturdayn', 'Sundayn']
Как только файл был прочитан с использованием одной из операций, его нельзя прочитать снова. Например, если вы запустите days_file.read(), за которой следует days_file.readlines(), вторая операция вернет пустую строку. Поэтому, когда вы захотите прочитать содержимое файла, вам нужно будет сначала открыть новую файловую переменную.
Шаг 4 - Запись файла
На этом этапе мы запишем новый файл, который включает в себя название «Days of the Week», и дни недели. Сначала создадим переменную title.
files.py
title = 'Days of the Weekn'
Также нужно сохранить дни недели в строковой переменной days. Открываем файл в режиме чтения, считываем файл и сохраняем вывод в новую переменную days.
files.py
path = '/users/sammy/days.txt'
days_file = open(path,'r')
days = days_file.read()
Теперь, когда у нас есть переменные для названия и дней недели, запишем их в новый файл. Сначала нужно указать расположение файла. Мы будем использовать каталог /users/sammy/. Также нужно указать новый файл, который мы хотим создать. Фактический путь будет /users/sammy/new_days.txt. Мы записываем его в переменную new_path. Затем открываем новый файл в режиме записи, используя функцию open() с режимом w.
files.py
new_path = '/users/sammy/new_days.txt'
new_days = open(new_path,'w')
Если файл new_days.txt уже существовал до открытия, его содержимое будет удалено, поэтому будьте осторожны при использовании режима «w».
Когда новый файл будет открыт, поместим в него данные, используя <file>.write(). Операция write принимает один параметр, который должен быть строкой, и записывает эту строку в файл.
Если хотите записать новую строку в файл, нужно указать символ новой строки. Мы записываем в файл заголовок, за которым следуют дни недели.
iles.py
new_days.write(title)
print(title)
new_days.write(days)
print(days)
Всякий раз, когда мы заканчиваем работу с файлом, нужно его закрыть. Мы покажем это в заключительном шаге.
Шаг 5 - Закрытие файла
Закрытие файла деактивирует соединение между файлом, сохраненным на жестком диске, и файловой переменной. Закрытие файлов также гарантирует, что другие программы смогут получить к ним доступ и безопасно сохранить данные. Закроем все наши файлы, используя функцию <file>.close().
files.py
days_file.close()
new_days.close()
Мы закончили обработку файлов в Python и можем перейти к просмотру кода.
Шаг 6 - Проверка кода
Конечный результат должен выглядеть примерно так:
files.py
path = '/users/sammy/days.txt'
days_file = open(path,'r')
days = days_file.read()
new_path = '/users/sammy/new_days.txt'
new_days = open(new_path,'w')
title = 'Days of the Weekn'
new_days.write(title)
print(title)
new_days.write(days)
print(days)
days_file.close()
new_days.close()
После сохранения кода откройте терминал и запустите свой Python- скрипт, например:
python files.py
Результат должен выглядеть так:
Вывод
Days of the Week
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
Теперь проверим код полностью, открыв файл new_days.txt. Если все пройдет хорошо, когда мы откроем этот файл, его содержимое должно выглядеть следующим образом:
new_days.txt
Days of the Week
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
Заключение
В этой статье мы рассказали, как работать с простыми текстовыми файлами в Python 3. Теперь вы сможете открывать, считывать, записывать и закрывать файлы в Python.