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

В этой записи блога вы узнаете, как читать и записывать файл в Python, используя встроенную функцию «open()» и объект файла, который она возвращает. Вы также узнаете о различных режимах доступа, которые можно использовать для открытия файла, и о различных методах, которые можно использовать для чтения из файлового объекта.

Что такое обработка файлов Python?

Обработка файлов Python — это процесс работы с файлами в Python. Он включает в себя открытие, чтение, запись и закрытие файлов с использованием кода Python. Обработка файлов Python позволяет вам манипулировать данными, хранящимися в файлах, и выполнять с ними различные операции.

Обработка файлов Python основана на концепции файлового объекта. Файловый объект — это объект, представляющий файл в Python. У него есть атрибуты и методы, которые позволяют вам получать доступ и изменять содержимое файла. Вы можете создать файловый объект с помощью функции «open()».

Как открыть файл в Python?

Функция «open()» — это основная функция, которую вы используете для открытия файла в Python. Он принимает два аргумента: имя файла и режим доступа. Имя файла — это имя файла, который вы хотите открыть, а режим доступа — это строка, указывающая, как вы хотите открыть файл.

Режим доступа определяет, какие операции вы можете выполнять над файловым объектом. Существует несколько режимов доступа, которые вы можете использовать, но наиболее распространенными из них являются:

  • "r"`: режим только для чтения. Вы можете только читать из файлового объекта. Это режим по умолчанию, если вы его не укажете.
  • "w": режим только для записи. Вы можете писать только в файловый объект. Если файл уже существует, он будет перезаписан. Если файл не существует, он будет создан.
  • "a": режим добавления. Вы можете писать только в конец файлового объекта. Если файл не существует, он будет создан.
  • "r+": режим чтения-записи. Вы можете читать и записывать в файловый объект.
  • «w+»:режим записи-чтения. Вы можете записывать и читать из файлового объекта.

    Если файл уже существует, он будет перезаписан. Если файл не существует, он будет создан.
  • "+": режим добавления-чтения. Вы можете писать в конец и читать из файлового объекта. Если файл не существует, он будет создан.

Чтобы открыть файл в Python, вы используете следующий синтаксис:

file = open(filename, access_mode)

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

Например

  • Если вы хотите открыть файл с именем "Python.txt" в режиме только для чтения, помните, что файл существует, и мы хотим его прочитать:
file=open("Python.txt", "r")
  • Если мы попытаемся открыть несуществующий файл, будет создан новый файл:
file_2=open("output", "w")

Как прочитать файл в Python?

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

  1. Самым простым методом является read(), который считывает все содержимое файлового объекта и возвращает его в виде строки. Например:
file=open("Python.txt", "r")
text=file.read()
print(text)

выход:

Python is a high-level, general-purpose programming language.
Its design philosophy emphasizes code readability with the use of significant indentation via the off-side rule.
Python is dynamically typed and garbage-collected. 

Однако одновременное чтение всего содержимого большого файла может оказаться не очень эффективным или практичным. Вы можете захотеть прочитать только определенное количество байтов или символов из файлового объекта за раз.

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

file=open("Python_Wikipedia.txt", "r")
text=file.read(22)
print(text)

Это напечатает только 22 байта или символа из «Python.txt»:

Python is a high-level

2. Другой метод, который можно использовать для чтения из файлового объекта, — это readline(), который считывает по одной строке из файлового объекта и возвращает ее в виде строки. Например:

file=open("Python.txt", "r")
text=file.readline()
print(text)

Будет напечатана первая строка Python.txt:

Python is a high-level, general-purpose programming language.

Вы можете снова вызвать readline(), чтобы прочитать следующую строку, и так далее.

file=open("Python.txt","r")
print(file.readline())
print(file.readline())

выход:

Python is a high-level, general-purpose programming language.

Its design philosophy emphasizes code readability with the use of significant indentation via the off-side rule.

Однако, если вы хотите прочитать все строки файла более удобным способом, вы можете использовать метод readlines(), который читает все строки объекта файла и возвращает их как список строк. Например:

file=open("Python.txt", "r")
text=file.readlines()
print(text)

выход:

['Python is a high-level, general-purpose programming language.\n', 'Its design philosophy emphasizes code readability with the use of significant indentation via the off-side rule.\n', 'Python is dynamically typed and garbage-collected. ']

Кроме того, вы можете использовать цикл for для прямого обхода файлового объекта без использования «readline()» или «readlines()». Это более эффективно с точки зрения памяти и Pythonic. Например:

file=open("Python.txt", "r")
for line in file:
  print(line)

выход:

Python is a high-level, general-purpose programming language.

Its design philosophy emphasizes code readability with the use of significant indentation via the off-side rule.

Python is dynamically typed and garbage-collected. 

3. После завершения работы с файловым объектом всегда следует закрывать его с помощью метода close(). Это освободит любые системные ресурсы, используемые файлом. Например:

file=open("Python.txt", "r")
print(file.read())
file.close()

4. Можно также использовать метод seek() для перемещения указателя файла в другую позицию в файловом объекте. Это позволяет вам читать или записывать в определенное место в файле. Метод seek() принимает смещение (количество байтов) в качестве аргумента и перемещает указатель на эту позицию с начала файла. Например:

file=open("Python.txt", "r")
file.seek(12) # Move the pointer 12 bytes from the beginning
print(file.read(10)) # Read 10 bytes from that position

выход:

high-level

5. Вы также можете использовать метод «tell()», чтобы получить текущую позицию указателя файла в байтах. Это может быть полезно, если вы хотите сохранить или восстановить положение указателя. Например:

pos = file.tell() # Get the current position
print(pos)
file.seek(10) # Move the pointer 10 bytes from the beginning
pos = file.tell() # Get the new position
print(pos)

выход:

0
10

6. подсчет строк в файле: мы можем использовать оператор for для перебора последовательности (дескриптор файла, открытый для чтения, можно рассматривать как последовательность строк, где каждая строка в файле является строкой). в последовательности). мы использовали цикл for для чтения каждой строки, подсчета строк и вывода количества строк.

file=open("Python.txt", "r")
count=0
for line in file:
    count=count+1
print('line count:', count)

выход:

line count: 3

7.поиск в файле: мы используем оператор if в цикле for для вывода только тех строк, которые соответствуют некоторым критериям.

file=open("Python.txt", "r")
for line in file:
    if line.startswith('Its'):
        print(line)

выход:

Its design philosophy emphasizes code readability with the use of significant indentation via the off-side rule.

8. Выбор строк: если вы хотите выбрать строку, в которой содержится слово «python», мы используем оператор if с «not», что означает, что если строка, не содержащая слова «Python», будет пропущено.

file=open("Python.txt", "r")
for line in file:
    if not "Python" in line:
        continue
    print(line)

выход:

Python is a high-level, general-purpose programming language.

Python is dynamically typed and garbage-collected. 

Как написать файл в Python?

Если вы хотите записать файл в Python, вам нужно открыть файл в режиме записи или в режиме добавления. Режим записи перезапишет существующий файл, если он существует, или создаст новый файл, если он не существует. Режим добавления будет записывать в конец файла без удаления каких-либо существующих данных.

  1. Для записи в файл в Python вы можете использовать метод "write()" объекта файла. Метод «write()» принимает строку в качестве аргумента и записывает ее в файл. Например:
file = open('file_1.txt', 'w')
file.write('I like python programming')
file.close()

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

выход:

Это создаст файл с именем 'file_1.txt' и напишет в нем "Мне нравится программирование на Python".

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

file = open('file_1.txt', 'a')
file.write('I am learning python programming')
file.close()

выход:

3. Вы также можете использовать метод «writelines()» для записи списка строк в файл. Например:

file = open('file_6.txt', 'w')
lines = ['I am learning python programming\n', 'Python is a popular programming language\n']
file.writelines(lines)
file.close()

Это создаст файл с именем ’file_1.txt’ и запишет в него строки из списка.

Обратите внимание, что вам нужно добавить символ новой строки ('\n') в конце каждой строки, если вы хотите, чтобы они отображались на отдельных строках в файле.

4. Вы также можете использовать форматирование строк или f-строки для создания динамических строк, которые можно записать в файл. Например:

profession = 'programmer'
experience = 5
file = open('file_3.txt', 'w')
file.write(f'I am a {profession} and my {experience} is years.')
file.close()

выход:

Заключение

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

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

Повышение уровня кодирования

Спасибо, что являетесь частью нашего сообщества! Перед тем, как ты уйдешь:

  • 👏 Хлопайте за историю и подписывайтесь на автора 👉
  • 📰 Смотрите больше контента в публикации Level Up Coding
  • 💰 Бесплатный курс собеседования по программированию ⇒ Просмотреть курс
  • 🔔 Подписывайтесь на нас: Twitter | ЛинкедИн | "Новостная рассылка"

🚀👉 Присоединяйтесь к коллективу талантов Level Up и найдите прекрасную работу