Работа с файлами в python: Работа с файлами

Как работать с файлами в Python

В любом проекте разработки ПО нам приходится работать с файлами. При помощи Python можно осуществлять довольно много операций. Мы можем:

  • выводить список файлов
  • перемещать и переименовывать файлы
  • удалять файлы
  • читать файлы
  • записывать в файлы
  • добавлять что-либо в файлы

Наверняка можно делать что-то еще, но это те базовые операции, которые мы разберем в этой статье.

Чтобы сэкономить время и лучше изложить материал, я сгруппировал некоторые темы.

Вывод списка файлов и их переименование

В этом разделе я покажу вам, что можно делать при помощи модуля os в Python. Если вы гик вроде меня и хотите иметь возможность переименовывать файлы в соответствии с определенными правилами, Python вам поможет.

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

Python задачи

Наш телеграм канал с тестами по Python, задачами с собеседований и разбором решений.

Подробнее

×

Как получить список файлов в Python

Насколько я знаю, в модуле os нет специального метода, который возвращал бы имена только файлов. Поэтому, получив список файлов и директорий, нам придется отсеять директории. Для этого мы можем воспользоваться методом os.path.isfile() из модуля os. Этот метод возвращает True, если аргумент является файлом. Аналогично, метод

os.path.isdir() возвращает True, если аргумент является директорией.

import os
# returns name of all files & directory exist in current location
files_dir = os.listdir('./blogs')
print(files_dir)
only_files = []
for i in files_dir:
    if os.path.isfile('./blogs/'+i):
        only_files. append(i)
only_dir = []
for i in files_dir:
    if os.path.isdir('./blogs/'+i):
        only_dir.append(i)
print('-'*15)
print(only_files) # prints all files
print('-'*15)
print(only_dir) # prints all directories
"""
OUTPUT:
['1.txt', '2.txt', '3.txt', '4.txt', '5.txt', '6.txt', '7.txt', '8.txt', 'Test Directory 1', 'Test Directory 2']
---------------
['1.txt', '2.txt', '3.txt', '4.txt', '5.txt', '6.txt', '7.txt', '8.txt']
---------------
['Test Directory 1', 'Test Directory 2']
"""

Итак, мы получили список всех файлов.

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

Чтобы переименовать файлы, мы воспользуемся методом rename() и применим его к каждому файлу. Предположим, мы хотим добавить к файлам префиксы «Odd» (нечетный) и «Even» (четный), основываясь на индексах.

# only_files is a list of all files in the blogs directory
for index, file_name in enumerate(only_files):
    if index % 2 == 0:
        os. rename('./blogs/'+file_name, './blogs/'+'Even-'+file_name)
    else:
        os.rename('./blogs/'+file_name, './blogs/'+'Odd-'+file_name)

Здесь метод enumerate() возвращает номер по счетчику (начинается с 0) и значение из итератора (only_files). Мы проверяем, является ли индекс (номер по счетчику) четным, и если да — добавляем префикс «Even» к имени файла. В противном случае добавляем префикс «Odd».

Подробнее о функции enumerate() можно почитать в статье «Как работает функция enumerate() в Python?».

Вероятно, синтаксис метода os.rename() вы поняли, но на всякий случай приведу его:

os.rename(текущее_имя, новое_имя)

При использовании этого метода имена (пути) можно писать как целиком, так и в относительном формате (главное — написать правильно). В нашем случае я написал «./blog/». Вторая косая черта указывает на вход внутрь директории blogs. Таким образом, путь к файлу превращается в «./blogs/1.

txt».

Перемещение и удаление файлов в Python

Чтобы переместить файл, мы можем воспользоваться модулем os или модулем shutil. Я покажу перемещение файла при помощи метода rename() из модуля os.

Синтаксис rename() тот же, только в качестве второго аргумента указывается путь к целевому файлу с именем самого файла.

os.rename(исходное_местонахождение, целевое_местонахождение)

Вероятно, это звучит запутано, но пример вам все объяснит:

import os
os.rename('./blogs/1.txt', './blogs/Test Directory 1/1.txt')
os.rename('./blogs/2.txt', './blogs/Test Directory 2/1.txt')

Итак, в первом методе rename мы берем файл 1.txt из директории blogs и перемещаем его в директорию Test Directory 1

, которая является поддиректорией blogs.

Во втором сценарии мы берем файл 2.txt и тоже перемещаем его в директорию Test Directory 1, но с именем 1.txt. Да, мы перемещаем и переименовываем файл одновременно. Если вы немного знакомы с командами Linux, вы могли заметить что работа метода os.rename() напоминает работу команды mv в Linux.

А как нам теперь удалить эти файлы?

Нам снова поможет модуль os. Мы воспользуемся методом remove(). Допустим, мы хотим удалить файл 3.txt из директории blogs. Для этого напишем следующий код:

import os os.remove('./blogs/3.txt')

Чтение файлов и запись в них

Чтобы выполнить любую из операций чтения и записи, нам нужно сделать три основных шага:

  1. Открыть файл
  2. Выполнить операцию
  3. Закрыть файл

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

# Открыть файл
file = open('./blogs/1.txt', 'r', encoding="UTF-8")
# Выполнить операцию
data = file.read()
print(data)
# Закрыть файл
file.close()
"""
OUTPUT:
Python 101 Series
"""

Здесь мне нужно было открыть файл, выполнить операцию и закрыть файл вручную. Для открытия файла Python предоставляет метод

open(). Синтаксис:

open(файл, режим_доступа, кодировка)

Файл — это местонахождение объекта файла. Режим_доступа представляет режим, в котором мы хотим открыть файл. Вообще можно делать больше одной операции за раз, но об этом позже. Кодировка представляет формат кодировки, в которой мы хотим работать с файлом. Этот параметр опционален. Чаще всего используется UTF-8.

Второй паттерн:

with open('./blogs/1.txt', 'r', encoding="UTF-8") as file:
    data = file.read()
    print(data)

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

От редакции Pythonist. О контекстных менеджерах можно почитать в статье «Контекстные менеджеры в Python».

Итак, в первой строке мы открываем файл при помощи синтаксиса with open() и присваиваем его переменной file. Мы могли бы сделать то же самое, написав file = open(). Преимущество нашего варианта в том, что Python автоматически освободит этот ресурс после третьей строки.

Поскольку после третьей строки мы окажемся вне контекста with open(), все ресурсы, связанные с переменной

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

Помимо чтения, мы можем записывать файлы и дополнять их новыми данными. Делается это аналогично. То есть, чтобы записать данные в файл, мы пишем следующий код:

with open('./blogs/temp.txt', 'w', encoding="UTF-8") as file:
    data = "Python 101 Series"
    file.write(data)

Если файл с таким именем существует, он будет перезаписан новыми данными. А если такого файла нет, он будет создан и в него будут записаны данные. При этом следует учитывать, что создается только новый файл, директория создана не будет. Если я напишу open(«./blogs/temp/temp.txt», «w»), код выбросит ошибку, потому что внутри директории

blogs нет директории temp.

Чтобы данные в файле не перезаписывались, а дополнялись, можно воспользоваться методом append (в коде — аргумент 'a'). Он добавляет данные в конец открытого файла.

with open('./blogs/temp.txt', 'a') as file:
    data = "\n New Python 101 Series"
    file.write(data)

В этом коде сперва Python проверит, существует ли файл temp.txt, затем откроет его и добавит «\n New Python 101 Series» в конец файла. Если файл не существует, Python его создаст и запишет в него эту строку.

Режимы доступа к файлам

Я собрал базовые режимы доступа к файлам в таблице. Но есть и другие режимы, позволяющие оперировать бинарными данными и в бинарном формате. Полный список можно посмотреть в статье «File Access mode In Python».

РежимОбъяснение
rчтение
wзапись
aдобавление в файл
r+Чтение и запись данных в файл. Предыдущие данные в файле не удаляются.
w+Запись и чтение данных. Существующие данные перезаписываются.
a+Добавление и чтение данных из файла. Существующие данные не перезаписываются.

Заключение

В этой статье мы на простых примерах разобрали, как работать с файлами в Python. Я знаю, что запомнить все это за один раз сложно. Но это и не нужно: все придет с практикой, главное — разобраться.

Перевод статьи «File Handling in Python».

Язык программирования «Python». Работа с файлами в Python. Чтение и запись данных

Язык программирования «Python». Работа с файлами в Python. Чтение и запись данных

×

  • 1. Установка Python 3.7
  • 2. Варианты выполнения кода. Первая программа
  • 3. Объекты. Числа и операции над ними
  • 4. Переменные в Python. Оператор присваивания
  • 5. Функция input()
  • 6. Функция print()
  • 7. Деление нацело и деление по остатку
  • 8. Функции trunc, floor, ceil
  • 9. Деление нацело и по остатку отрицательных чисел в Python
  • 10. Логический тип Bool. Операции сравнения
  • 11. Cтроки и операции над ними
  • 12. Строки: индексы и срезы
  • 13. Строки и их методы
  • 14. Списки и операции над ними
  • 15. Списки: индексы и срезы
  • 16. Списки и их методы
  • 17. Условный оператор if
  • 18. Вложенный оператор if
  • 19. Множественный выбор elif
  • 20. Цикл while
  • 21. Обход всех цифр числа с помощью while
  • 22. Алгоритм Евклида
  • 23. Цикл while. Нахождение всех делителей числа
  • 24. Цикл while. Инструкции break, continue, else
  • 25. Функция range и итерируемые объекты
  • 26. Цикл for. Обход элементов функции range
  • 27. Цикл for. Обход списков и строк
  • 28. Установка, настройка и использование PyCharm
  • 29. Метод подсчета. Сортировка подсчетом Python
  • 30. Вложенные циклы
  • 31. Вложенные списки
  • 32. Треугольник Паскаля
  • 33. Множества в Python. Тип данных set
  • 34. Словари Python. Операции и методы словаря
  • 35. 4 Ситуации, где полезно использовать словарь
  • 36. Как отсортировать словарь в Python
  • 37. Кортежи (tuple). Операции и методы кортежей
  • 38. Функции (def). Определение и вызов функции
  • 39. Зачем нужны функции в программировании
  • 40. Возвращаемое значение функции. Оператор return
  • 41. Область видимости: локальная, глобальная и встроенная.
  • 42. Вложенные функции Python
  • 43. Замыкания в Python. Closure Python
  • 44. Замыкания в Python Часть 2
  • 45. Передача аргументов. Сопоставление аргументов по имени и позиции
  • 46. *args и **kwargs Python. Передача аргументов в функцию
  • 47. Рекурсия в Python. Рекурсивная функция Часть 1
  • 48. Рекурсия в Python. Рекурсивная функция Часть 2
  • 49. Рекурсивный обход файлов
  • 50. Функция enumerate
  • 51. Анонимная функция Lambda
  • 52. Генераторы списков Python | List comprehension
  • 53. Генераторы списков 2 | List comprehension | Вложенные генераторы списков
  • 54. Выражения-генераторы
  • 55. Функция генератор. Создание генератора при помощи yield
  • 56. Функция map Python.
  • 57. Функция filter
  • 58. Функция zip python
  • 59. Сортировка коллекций в Python. Метод sort и функция sorted
  • 60. Декораторы в Python Часть 1
  • 61. Декораторы в Python Часть 2
  • 62. Сортировка по ключу Python. Аргумент key
  • 63. Установка модулей в Python || Установка пакета Python
  • 64. Работа с файлами в Python. Чтение и запись данных
  • 65. Экранированные и служебные символы в Python
  • 66. Встроенная функция isinstance
  • 67. Функции all и any.
  • 68. Форматирование строк. Метод format
  • 69. F-строка
  • 70. Импорт стандартных модулей
  • 71. Импорт собственных модулей в Python
  • 72. 7 видов вызываемых (callable) объектов в Python
  • 73. Метод split и метод join Python
  • 74. Пакеты в Python. Файл __init__, переменная __all__
  • 75. Работаем с JSON в Python. Парсинг JSON, сохраняем JSON в файл
  • Следующие видео

    64. Работа с файлами в Python. Чтение и запись данных

    65. Экранированные и служебные символы в Python

    66. Встроенная функция isinstance

    67. Функции all и any.

    68. Форматирование строк. Метод format

    69. F-строка

    70. Импорт стандартных модулей

    71. Импорт собственных модулей в Python

    72. 7 видов вызываемых (callable) объектов в Python

    Глава 8. Работа с файлами — Документация по Python 101 1.0

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

    Как читать файл

    Python имеет встроенную функцию open , которую мы можем использовать, чтобы открыть файл для чтения. Создайте текстовый файл с именем «test.txt» со следующим содержимым:

     Это тестовый файл.
    строка 2
    строка 3
    эта строка намеренно оставлена ​​пустой
     

    Вот несколько примеров, которые показывают, как использовать open для чтения:

     handle = open("test.txt")
    handle = open(r"C:\Users\mike\py101book\data\test.txt", "r")
     

    Первый пример открывает файл с именем test.txt в режиме только для чтения. Это режим по умолчанию функции open . Обратите внимание, что мы не передали полный путь к файлу, который хотели открыть в первом примере. Python будет автоматически искать в папке, в которой запущен скрипт, test.txt . Если он не найдет его, вы получите IOError.

    Во втором примере показан полный путь к файлу, но вы заметите, что он начинается с «r». Это означает, что мы хотим, чтобы Python обрабатывал строку как необработанную строку. Давайте рассмотрим разницу между указанием исходной строки и обычной строки:

     >>> print("C:\Users\mike\py101book\data\test. txt")
    C:\Пользователи\Майк\py101book\данные est.txt
    >>> print(r"C:\Users\mike\py101book\data\test.txt")
    C:\Пользователи\Майк\py101book\data\test.txt
     

    Как видите, когда мы не указываем его как необработанную строку, мы получаем недопустимый путь. Почему это происходит? Ну, как вы, возможно, помните из главы о строках, существуют определенные специальные символы, которые необходимо экранировать, например «n» или «t». В этом случае мы видим, что есть «t» (то есть табуляция), поэтому строка послушно добавляет табуляцию к нашему пути и портит его для нас.

    Второй аргумент во втором примере также является «r». Это сообщает open , что мы хотим открыть файл в режиме только для чтения. Другими словами, он делает то же самое, что и первый пример, но более явно. Теперь давайте на самом деле прочитаем файл!

    Поместите следующие строки в сценарий Python и сохраните его в том же месте, что и файл test.txt:

     handle = open("test.txt", "r")
    данные = дескриптор. чтение()
    печать (данные)
    ручка.закрыть()
     

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

    Давайте рассмотрим различные способы чтения файлов.

     дескриптор = открыть ("test.txt", "r")
    data = handle.readline() # прочитать только одну строку
    печать (данные)
    ручка.закрыть()
     

    Если вы запустите этот пример, он прочитает только первую строку вашего текстового файла и распечатает ее. Это не слишком полезно, поэтому давайте попробуем метод readlines() дескриптора файла:

     handle = open("test.txt", "r")
    data = handle.readlines() # прочитать ВСЕ строки!
    печать (данные)
    ручка.закрыть()
     

    После запуска этого кода вы увидите список Python, напечатанный на экране, потому что это то, что возвращает метод readlines : список! Давайте на минутку научимся читать файл небольшими порциями.

    Как читать файлы по частям

    Самый простой способ прочитать файл по частям — использовать цикл. Сначала мы научимся читать файл построчно, а затем научимся читать его по килобайтам за раз. Мы будем использовать цикл для для нашего первого примера:

     дескриптор = открыть ("test.txt", "r")
    для строки в ручке:
        печать (строка)
    ручка.закрыть()
     

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

     дескриптор = открыть ("test.txt", "r")
    пока верно:
        данные = дескриптор.чтение(1024)
        печать (данные)
        если не данные:
            ломать
     

    В этом примере мы используем цикл Python while для чтения по килобайту файла за раз. Как вы, наверное, знаете, килобайт — это 1024 байта или символа. Теперь давайте представим, что мы хотим прочитать двоичный файл, например PDF.

    Как читать двоичный файл

    Читать двоичный файл очень просто. Все, что вам нужно сделать, это изменить режим файла:

     handle = open("test.pdf", "rb")
     

    Итак, на этот раз мы изменили режим файла на rb , что означает чтение-бинарное . Вы обнаружите, что вам может понадобиться читать двоичные файлы, когда вы загружаете PDF-файлы из Интернета или переносите файлы с ПК на ПК.

    Запись файлов в Python

    Если вы следили за этим, вы, вероятно, догадались, какой флаг режима файла используется для записи файлов: «w» и «wb» для режима записи и режима записи в двоичном формате. Давайте рассмотрим простой пример, хорошо?

    ВНИМАНИЕ : При использовании режимов «w» или «wb», если файл уже существует, он будет перезаписан без предупреждения! Вы можете проверить, существует ли файл, прежде чем открывать его, используя Python 9.Модуль 0007 ОС . См. раздел os.path.exists в , глава 16 .

     дескриптор = открыть ("test.txt", "w")
    handle.write("Это тест!")
    ручка.закрыть()
     

    Это было просто! Все, что мы здесь сделали, это изменили режим файла на «w» и вызвали метод дескриптора файла write , чтобы записать некоторый текст в файл. Дескриптор файла также имеет метод writelines , который принимает список строк, которые дескриптор затем записывает на диск по порядку.

    Использование with Operator

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

     с open("test.txt") в качестве file_handler:
        для строки в file_handler:
            печать (строка)
     

    Синтаксис для с оператором немного странный, но вы довольно быстро разберетесь. По сути, мы заменяем:

     handle = open("test.txt")
     

    с этим:

     с open("test.txt") как file_handler:
     

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

    Обнаружение ошибок

    Иногда при работе с файлами случаются неприятные вещи. Файл заблокирован, потому что его использует какой-то другой процесс или у вас есть какая-то ошибка разрешения. Когда это произойдет, вероятно, произойдет ошибка IOError . В этом разделе мы рассмотрим, как отлавливать ошибки обычным способом и как их отлавливать с помощью с оператором . Подсказка: идея в основном одинакова в обоих!

     попробуйте:
        file_handler = открыть ("test.txt")
        для строки в file_handler:
            печать (строка)
    кроме IOError:
        print("Произошла ошибка ввода-вывода!")
    в конце концов:
        file_handler.close()
     

    В приведенном выше примере мы заключаем обычный код в конструкцию try/except . При возникновении ошибки мы выводим сообщение на экран. Обратите внимание, что мы также закрываем файл, используя finally 9Заявление 0008. Теперь мы готовы посмотреть, как бы мы сделали то же самое, используя с :

     попробуйте:
        с open("test.txt") как file_handler:
            для строки в file_handler:
                печать (строка)
    кроме IOError:
        print("Произошла ошибка ввода-вывода!")
     

    Как вы могли догадаться, мы просто завернули блок в блок так же, как и в предыдущем примере. Разница здесь в том, что нам не нужен оператор finally , так как менеджер контекста обрабатывает его за нас.

    Подведение итогов

    К этому моменту вы должны уже хорошо разбираться в работе с файлами в Python. Теперь вы знаете, как читать и записывать файлы, используя старый стиль и новый стиль со стилем . Вы, скорее всего, увидите оба стиля в дикой природе. В следующей главе мы узнаем, как импортировать другие модули, поставляемые с Python. Это позволит нам создавать программы, используя готовые модули. Давайте начнем!

    Обработка файлов в Python [Полная серия] — PYnative

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

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

    Работа с файлами в Python

    Серия по работе с файлами

    Эта серия по работе с файлами Python содержит следующее подробное руководство . Вы можете напрямую прочитать их.

    • Создать файл в Python : вы научитесь создавать файл в текущем каталоге или в указанном каталоге. Кроме того, создайте файл с датой и временем в качестве имени. Наконец, создайте файл с разрешениями.
    • Открыть файл в Python : вы научитесь открывать файл, используя как относительные, так и абсолютные пути. Различные режимы доступа к файлам для открытия файла в режиме чтения и записи.
    • Чтение файла в Python : вы научитесь читать как текстовые, так и двоичные файлы с помощью Python. Различные режимы чтения файла. Все способы чтения текстового файла типа read() , readline() и readlines()
    • Запись в файл Python : вы научитесь записывать/добавлять содержимое в текстовые и двоичные файлы с помощью Python. Все методы записи текста в файл, такие как write() , writelines() .
    • File Seek(): перемещение указателя файла : вы научитесь использовать функцию seek() для перемещения позиции указателя файла при чтении или записи файла.
    • Переименовать файлы в Python : вы научитесь переименовывать один файл или несколько файлов. Переименование файлов, соответствующих шаблону. Переименуйте все файлы в папке.
    • Удаление файлов и каталогов в Python : вы научитесь удалять файлы с помощью модуля os и модуля pathlib. Удалять файлы, соответствующие шаблону (шаблону). Удалить каталог и все файлы из него
    • Копирование файлов и каталогов в Python : вы научитесь использовать модули os, Shutil и Subprocess для копирования файлов и папок из одного места в другое.
    • Перемещение файлов или каталогов в Python : вы научитесь перемещать одиночные и множественные файлы. Кроме того, переместите файлы, соответствующие шаблону (шаблону), или переместите весь каталог
    • Викторина по работе с файлами Python

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

    • Python Проверить, существует ли файл
    • Размер файла проверки Python
    • Python подсчитывает количество строк в файле
    • Python Поиск строки в текстовых файлах
    • Чтение определенных строк из файла в Python
    • Удалить строки из файла в Python
    • Запись списка в файл на Python
    • Список файлов Python в каталоге
    • Python подсчитывает количество файлов в каталоге
    • Список файлов Python в каталоге с расширением txt
    • Python Удалить/удалить непустую папку
    • Python Get Создание и изменение файла DateTime

    Типы файлов
    • Текстовый файл : Текстовый файл обычно используется для хранения символьных данных. Например, test.txt
    • Двоичный файл : Двоичные файлы используются для хранения двоичных данных, таких как изображения, видеофайлы, аудиофайлы и т. д.

    Путь к файлу

    Путь к файлу определяет расположение файла или папки в компьютерной системе. Есть два способа указать путь к файлу.

    1. Абсолютный путь : всегда начинается с корневой папки
    2. Относительный путь : который относится к текущему рабочему каталогу программы

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

    Например, /user/Pynative/data/sales.txt — это абсолютный путь для обнаружения файла sales.txt. Вся информация, необходимая для поиска файла, содержится в строке пути.

    После имени файла часть с точкой (.) называется расширением файла, и это говорит нам о типе файла. Здесь project.pdf — это документ в формате pdf.

    путь к файлу

    Чтение файла

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

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

    Режим доступа представляет цель открытия файла. Например, R для чтения и W для записи

    В этой статье мы будем использовать файл test.txt для управления всеми файловыми операциями. Создайте text.txt на своем компьютере и напишите в нем приведенное ниже содержимое, чтобы начать работу с файлами.

     Добро пожаловать на PYnative.com
    Это образец.txt
    Линия 3
    Линия 4
    Строка 5 

    Пример :

     # Открытие файла с абсолютным путем
    fp = open(r'E:\demos\files\sample.txt', 'r')
    # прочитать файл
    печать (fp.read())
    # Закрываем файл после прочтения
    fp.close()
    
    # путь, если вы используете MacOs
    # fp = open(r"/Users/myfiles/sample.txt", "r") 

    Вывод:

     Добро пожаловать на PYnative. com
    Это образец.txt
    Линия 3
    Линия 4
    Строка 5 

    Подробнее :

    • Создать файл в Python:
    • Открыть файл в Python
    • Чтение файла в Python
    • Чтение определенных строк из файла в Python

    Примечание :

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

    Режимы доступа к файлам

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

    Режим Описание
    р Открывает существующий файл в режиме только для чтения. Указатель файла существует в начале.
    руб Открывает файл только для чтения в двоичном формате. Указатель файла существует в начале.
    р+ Он открывает файл для чтения и записи. Указатель файла существует в начале.
    руб+ Он открывает файл для чтения и записи как в двоичном формате. Указатель файла находится в начале файла.
    ш Файл открывается только для записи. Он перезаписывает файл, если он уже существовал, или создает новый, если файла с таким именем не существует.
    вб Открывает файл для записи только в двоичном формате. Он перезаписывает файл, если он существовал ранее, или создает новый, если файла не существует.
    с+ Открывает файл для записи и чтения данных. Он переопределит существующие данные.
    шб+ Он открывает файл для записи и чтения как в двоичном формате
    и Файл открывается в режиме добавления. Он не будет переопределять существующие данные. Он создает новый файл, если файл с таким именем не существует.
    аб Открывает файл в режиме добавления в двоичном формате.
    а+ Он открывает файл для добавления и чтения.
    аб+ Он открывает файл для добавления и чтения в двоичном формате.
    Режим доступа к файлу

    Запись в файл

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

    Примечание :

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

    Пример

     text = "Это новый контент"
    # запись нового содержимого в файл
    fp = открыть ("write_demo. txt", 'w')
    fp.write(текст)
    print('Готово')
    fp.close() 

    Подробнее :

    • Запись в файл на Python

    Перемещение указателя файла

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

    Позиция (индекс) первого символа в файлах равна ноль , точно так же, как индекс строки .

    Пример

     f = open("sample.txt", "r")
    # перейти к 11 символу
    f.искать(11)
    # читать с 11-го символа
    печать(f.read()) 

    Выход :

     PYnative.com
    Это образец.txt
    Линия 3
    Линия 4
    Строка 5 

    Метод tell() для возвращает текущую позицию указателя файла от начала файла.

    tell() Пример

     f = open("sample.txt", "r")
    # прочитать первую строку
    f. readline()
    # получить текущую позицию дескриптора файла
    печать (f.tell())
    
    # Выход 25 

    Подробнее : Полное руководство по File Seek(): Перемещение позиции указателя файла

    Файловые методы Python

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

    Метод Описание
    чтение() Возвращает содержимое файла.
    чтение строки() Чтение одной строки
    строки чтения () Считать файл в список
    обрезать (размер) Изменяет размер файла до указанного размера.
    запись() Записывает указанную строку в файл.
    строк записи() Записывает в файл список строк.
    закрыть() Закрывает открытый файл.
    искать() Установить позицию указателя файла в файле
    рассказать() Возвращает текущее местоположение файла.
    файлно() Возвращает число, представляющее поток с точки зрения операционной системы.
    смыв() Сбрасывает внутренний буфер.
    Методы файловых объектов

    Копирование файлов

    В Python существует несколько способов копирования файлов. Метод Shutil.copy() используется для копирования содержимого исходного файла в целевой файл.

    Пример

     импортный шаттл
    
    src_path = r"E:\demos\files\report\profit.txt"
    dst_path = r"E:\demos\files\account\profit.txt"
    Shutil.copy(src_path, dst_path)
    print('Copied') 

    Подробнее :

    • Копирование файлов в Python
    • Перемещение файлов в Python

    Переименовать файлы

    В Python модуль os предоставляет функции для операций обработки файлов, таких как переименование, удаление файла и т. д. Модуль os обеспечивает взаимодействие с операционной системой.

    Модуль os предоставляет метод rename() для переименования указанного имени файла в новое имя. Синтаксис метода rename() показан ниже.

    Пример

     импорт ОС
    
    # Абсолютный путь к файлу
    old_name = r"E:\demos\files\reports\details.txt"
    new_name = r"E:\demos\files\reports\new_details.txt"
    
    # Переименование файла
    os.rename(old_name, new_name) 

    Подробнее :

    • Переименовать файлы в Python

    Удалить файлы

    В Python модуль os предоставляет функцию remove() для удаления или удаления пути к файлу.

     импорт ОС
    
    # удалить файл с абсолютным путем
    os.remove(r"E:\demos\files\sales_2.txt") 

    Подробнее :

    • Удаление файлов и каталогов в Python
    • Удалить строки из файла в Python

    Работа с байтами

    Байт состоит из 8 битов, а биты состоят либо из 0, либо из 1.

  • Оставить комментарий

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *