Tehnografi.com - Технологические новости, обзоры и советы

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

Примечание. Следующая статья поможет вам: Как работать с файлами в Python

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

К концу этого урока вы сможете:

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

    Чтобы открыть файл в Python, вы можете использовать общий синтаксис: open(‘file_name’,’mode’).

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

  • Режим параметра указывает режим, в котором вы хотите открыть файл.
  • Режим по умолчанию для открытия файла читать— обозначается буквой «р». Однако рекомендуется указывать режим явно.

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

    📁 Загрузите текстовый файл и код, используемые в этом руководстве, из этого репозитория GitHub.

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

    Фрагмент кода ниже показывает, как вы можете открыть текстовый файл «lib.txt» в Python с помощью функции open() и прочитать его содержимое.

    file = open(‘lib.txt’,’r’)contents = file.read() print(contents) file.close() # Вывод Здравствуйте! Вот несколько полезных библиотек Python: 1) NumPy 2) pandas 3) matplotlib 4) seaborn 5) scikit-learn 6) BeautifulSoup 7) Scrapy 8) nltk 9) Bokeh 10) statsmodels

    В приведенном выше примере

  • Функция open() возвращает файловый объект, и мы решили назвать его файлом.
  • Затем мы вызываем метод read() для файла.
  • Теперь содержимое переменной содержит содержимое файла. И распечатываем.
  • Наконец, мы закрываем файл.
  • Однако, если вы забудете закрыть файл, возможна трата ресурсов. Если вы работаете с большим количеством таких файлов, это может привести к значительному использованию памяти. Это потому, что вы открыли несколько файлов, но не закрыли ни один из них.

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

    с open(‘lib.txt’,’r’) как f:contents = f.read() print(contents)

    При использовании менеджеров контактов для работы с файлами вам не нужно использовать метод close(). Файлы автоматически закрываются после завершения операции ввода-вывода.

    Как читать строки из файла в Python

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

    python-read-file

    Однако, когда вам нужно читать большие файлы, использование метода read(), как показано выше, может быть не очень эффективным.

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

    Использование метода Python readline() для чтения строк из файла

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

    Запустите следующий фрагмент кода.

    with open(‘lib.txt’,’r’) as f: line = f.readline() print(line) line = f.readline() print(line) # Вывод Привет! Вот несколько полезных библиотек Python:

    Вы можете видеть, что после первого вызова метода readline() выводится первая строка файла. И второй вызов метода readline() возвращает вторую строку в файле.

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

    В Python вы можете использовать метод tell(), чтобы получить текущее местоположение указателя файла. А чтобы переместить указатель файла в определенное место, вы можете использовать метод seek().

    В приведенном ниже фрагменте кода мы используем f.seek(0) после первого вызова метода. Это перемещает указатель файла в начало текстового файла. Вот почему в обоих случаях выводится первая строка файла.

    with open(‘lib.txt’,’r’) as f: line = f.readline() print(line) f.seek(0) line = f.readline() print(line) # Выходные данные Привет! Привет!

    Использование метода Python readlines() для чтения строк из файла

    Есть еще один близкородственный метод, который называется readlines().

    Когда вы запустите следующий фрагмент кода, вы увидите, что метод readlines() возвращает список всех строк в файле.

    с open(‘lib.txt’,’r’) as f: lines = f.readlines() print(lines) # Вывод
    [‘Hello, there!\n’, ‘Here are a few helpful Python libraries:\n’,
    ‘1) NumPy\n’, ‘2) pandas\n’, ‘3) matplotlib\n’,
    ‘4) seaborn\n’, ‘5) scikit-learn\n’, ‘6) BeautifulSoup\n’,
    ‘7) Scrapy\n’, ‘8) nltk\n’, ‘9) Bokeh\n’, ’10) statsmodels\n’, ‘\n’]

    Использование цикла Python for для чтения строк из файла

    Чтобы прочитать строки из текстового файла, вы также можете использовать цикл for.

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

    с open(‘lib.txt’,’r’) как f: для строки в f: print(line, end=”)

    Примечание: при использовании функции Python print() разделителем по умолчанию является символ новой строки — символ ‘\n’. Но в исходном файле у нас нет этих новых строк. Поэтому задайте в качестве аргумента-разделителя пустую строку: end = ”, чтобы напечатать содержимое файла как есть.

    Как читать фрагменты содержимого из файла в Python

    В Python вы также можете выбрать чтение содержимого файла небольшими порциями.

    Прочитайте код ниже:

  • Здесь мы устанавливаем chunk_size равным 50. Это означает, что первые 50 символов в файле будут прочитаны, и мы их также распечатаем.
  • Теперь вызовите метод tell() для файлового объекта f. Вы можете видеть, что указатель файла теперь находится в позиции 51, как и ожидалось.
  • chunk_size = 50 с open(‘lib.txt’,’r’) as f: chunk = f.read(chunk_size) print(chunk) current = f.tell() print(f”Текущая позиция указателя файла: {current }”) # Выходные данные Привет! Вот несколько полезных библиотек Python Текущая позиция указателя файла: 51

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

    В следующем фрагменте кода показано, как это можно сделать.

    chunk_size = 50 с open(‘lib.txt’,’r’) as f: chunk = f.read(chunk_size) print(chunk,end=”) while(len(chunk)>0): chunk = f. read(chunk_size) print(chunk,end=”) # Выходные данные Привет! Вот несколько полезных библиотек Python: 1) NumPy 2) pandas 3) matplotlib 4) seaborn 5) scikit-learn 6) BeautifulSoup 7) Scrapy 8) nltk 9) Bokeh 10) statsmodels

    Здесь мы используем цикл while для чтения содержимого файла. Мы читаем содержимое файла порциями размером 50, пока не достигнем конца файла. ✅

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

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

    Python-запись в файл

    Фрагмент кода ниже показывает, как это сделать.

    с open(‘new_file.txt’,’w’) as f: f.write(‘Привет, Python!’)

    Вы увидите, что «new_file.txt» был создан в вашем рабочем каталоге.

    Теперь запустите приведенную выше ячейку кода еще раз.

    В вашем терминале выполните следующую команду:

    cat new_file.txt # Вывод: Привет, Python!

    В идеале мы записали в файл дважды. Итак, привет, Питон! надо было печатать дважды, да?

    Но вы увидите, что он был напечатан только один раз. Ну, это потому, что когда вы открываете файл в записывать (w) режим, вы в основном содержимое файла с новым содержимым.

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

    Как добавить файл в Python

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

    Для этого используйте `’a’—а за добавить— и указать режим явно.

    Затем дважды запустите следующую ячейку кода.

    с open(‘new_file.txt’,’a’) as f: f.write(‘Привет, Python!’)

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

    cat new_file.txt # Вывод: Привет, Python! Привет, Python!

    Вывод

    Давайте быстро суммируем то, что мы прошли в этом уроке.

  • Вы изучили общие операции ввода-вывода файлов, такие как чтение, запись и добавление в файл.
  • Кроме того, вы также узнали, как использовать стремиться() метод для перемещения указателя файла в определенную позицию и
  • как использовать сказать() метод для получения текущей позиции указателя файла.
  • Я надеюсь, что вы нашли этот урок полезным. Теперь, когда вы научились работать с текстовыми файлами в Python, узнайте, как работать с файлами JSON в Python.

    Связанный:

    Проверьте длину списка в Python за 3 шага.