В этом учебнике мы будем работать с различными операциями с файлами в Python. Мы рассмотрим, как использовать Python для чтения файла, записи в файл, удаления файлов и многого другого. Итак, без всяких задержек, давайте начнем.
Работа с файлами в Python
В предыдущем уроке мы использовали консоль для ввода. Теперь мы будем использовать файл для ввода. Это означает, что мы будем читать из файлов и записывать в них. Для этого нам нужно выполнить несколько шагов. Это
- Открыть файл
- Взять ввод из этого файла / Записать вывод в этот файл
- Закрыть файл
Мы также узнаем некоторые полезные операции, такие как копирование файла и удаление файла.
Зачем нужны операции с файлами в Python?
При работе с большими наборами данных в задачах машинного обучения работа с файлами является базовой необходимостью. Поскольку Python является широко используемым языком для науки о данных, вам необходимо владеть различными операциями с файлами, которые предлагает Python.
Итак, давайте изучим некоторые операции с файлами в Python.
1. Открытие файла в Python с помощью функции open()
Первый шаг к работе с файлами в Python – изучить, как открывать файл. Вы можете открывать файлы с помощью метода open()
.
Функция open() в Python принимает два аргумента. Первый – это имя файла вместе с полным путем, а второй – режим открытия файла.
Ниже приведены некоторые общие режимы чтения файлов:
- ‘r’ : Этот режим указывает, что файл будет открыт только для чтения
- ‘w’ : Этот режим указывает, что файл будет открыт только для записи. Если файл с таким именем не существует, он будет создан
- ‘a’ : Этот режим указывает, что вывод программы будет добавлен к предыдущему выводу файла
- ‘r+’ : Этот режим указывает, что файл будет открыт как для чтения, так и для записи
Кроме того, для операционной системы Windows можно добавить ‘b’ для доступа к файлу в бинарном режиме. Это связано с тем, что Windows различает двоичный текстовый файл и обычный текстовый файл.
Предположим, мы поместили текстовый файл с именем ‘file.txt’ в ту же директорию, где находится наш код. Теперь мы хотим открыть этот файл.
Однако функция open(filename, mode) возвращает объект файла. С этим объектом файла вы можете продолжить свои дальнейшие операции.
#directory: /home/imtiaz/code.py
text_file = open('file.txt','r')
#Another method using full location
text_file2 = open('/home/imtiaz/file.txt','r')
print('First Method')
print(text_file)
print('Second Method')
print(text_file2)
Выходные данные следующего кода будут
================== RESTART: /home/imtiaz/code.py ==================
First Method
Second Method
>>>
2. Чтение и запись файлов в Python
Python предлагает различные методы для чтения и записи файлов, каждая функция ведет себя по-разному. Одним из важных моментов является режим операций с файлом. Для чтения файла вы должны открыть его в режиме чтения или записи. Для записи в файл в Python нужно открыть файл в режиме записи.
Вот некоторые функции в Python, которые позволяют вам читать и записывать файлы:
- read() : Эта функция читает весь файл и возвращает строку
- readline() : Эта функция читает строки из файла и возвращает их в виде строки. Она извлекает строку n, если вызвана в n-й раз.
- readlines() : Эта функция возвращает список, где каждый элемент – это одна строка этого файла.
- readlines() : Эта функция возвращает список, где каждый элемент – это одна строка этого файла.
- write() : Эта функция записывает фиксированную последовательность символов в файл.
- writelines() : Эта функция записывает список строк в файл.
- append() : Эта функция добавляет строку в файл, не перезаписывая его.
Давайте рассмотрим пример файла “abc.txt” и прочитаем отдельные строки из файла с использованием цикла for:
#открыть файл
text_file = open('/Users/pankaj/abc.txt','r')
#получить список строк
line_list = text_file.readlines();
#для каждой строки из списка вывести ее
for line in line_list:
print(line)
text_file.close() #не забудьте закрыть файл
Вывод:
Теперь, когда мы знаем, как читать файл в Python, давайте двигаться дальше и выполним операцию записи здесь с использованием функции writelines().
#открыть файл
text_file = open('/Users/pankaj/file.txt','w')
#инициализировать пустой список
word_list= []
#пройти 4 раза
for i in range (1, 5):
print("Please enter data: ")
line = input() #взять ввод
word_list.append(line) #добавить в список
text_file.writelines(word_list) #записать 4 слова в файл
text_file.close() #не забудьте закрыть файл
Вывод
3. Копирование файлов в Python с использованием метода shutil()
Мы можем использовать модуль shutil для копирования файлов в Python. Этот инструмент позволяет выполнять операции копирования и перемещения файлов в Python с разными файлами. Давайте поработаем над этим на примере:
import shutil
shutil.copy2('/Users/pankaj/abc.txt', '/Users/pankaj/abc_copy2.txt')
# еще один способ копирования файла
shutil.copyfile('/Users/pankaj/abc.txt', '/Users/pankaj/abc_copyfile.txt')
print("File Copy Done")
4. Удаление файлов в Python с помощью метода shutil.os.remove()
Модуль shutil в Python предлагает метод remove() для удаления файлов из файловой системы. Давайте посмотрим, как мы можем выполнить операцию удаления в Python.
import shutil
import os
# два способа удаления файла
shutil.os.remove('/Users/pankaj/abc_copy2.txt')
os.remove('/Users/pankaj/abc_copy2.txt')
5. Закрытие открытого файла в Python с помощью метода close()
Когда вы открываете файл в Python, крайне важно закрыть файл после внесения изменений. Это сохранит все изменения, которые вы ранее внесли, удалит файл из памяти и предотвратит дальнейшее чтение или запись в программе.
Синтаксис закрытия открытого файла в Python:
fileobject.close()
Если мы продолжим с наших предыдущих примеров, где мы читали файлы, вот как вы закроете файл:
text_file = open('/Users/pankaj/abc.txt','r')
# некоторые операции с файлами здесь
text_file.close()
Кроме того, вы можете избежать ручного закрытия файлов, используя блок with. Как только блок with будет выполнен, файлы закрываются и больше недоступны для чтения и записи.
6. Ошибка Python FileNotFoundError
Часто возникает ошибка FileNotFoundError при работе с файлами в Python. Ее легко избежать, указав полные пути к файлам при создании объекта файла.
File "/Users/pankaj/Desktop/string1.py", line 2, in <module>
text_file = open('/Users/pankaj/Desktop/abc.txt','r')
FileNotFoundError: [Errno 2] No such file or directory: '/Users/pankaj/Desktop/abc.txt'
Чтобы исправить ошибку FileNotFoundError, просто убедитесь, что путь, который вы указали для метода открытия файла, верен.
Вывод
Это операции с файлами на Python. Есть еще много способов использования файлов в Python, включая чтение данных из CSV и многое другое. Вот статья о том, как использовать модуль Pandas для чтения наборов данных CSV в Python.
I hope you enjoyed reading the article! Happy learning 🙂
**Ссылки:
**https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files
Source:
https://www.digitalocean.com/community/tutorials/python-read-file-open-write-delete-copy