Python считывает файл в список

Обновлено: 05.07.2024

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

Ниже показано, как прочитать все тексты из файла readme.txt в строку:

Этапы чтения текстового файла в Python

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

  • Сначала откройте текстовый файл для чтения с помощью функции open().
  • Во-вторых, прочитайте текст из текстового файла, используя метод read() , readline() или readlines() файлового объекта.
  • В-третьих, закройте файл с помощью метода file close().

1) функция open()

У функции open() много параметров, но вы сосредоточитесь на первых двух.

Параметр path_to_file указывает путь к текстовому файлу.

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

Чтобы указать путь к файлу, используйте косую черту ( '/' ), даже если вы работаете в Windows.

Например, если файл readme.txt хранится в папке с образцами в качестве программы, необходимо указать путь к файлу как c:/sample/readme.txt

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

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

< td>Открыть текстовый файл для чтения текста
РежимОписание
'r'
'w' Открыть текстовый файл для записи текста
'a' Открыть текстовый файл для добавления текста

Например, чтобы открыть файл с именем the-zen-of-python.txt, хранящийся в той же папке, что и программа, используйте следующий код:

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

2) Чтение текстовых методов

Объект файла предоставляет три метода чтения текста из текстового файла:

  • read() — прочитать весь текст из файла в строку. Этот метод удобен, если у вас есть небольшой файл и вы хотите манипулировать всем текстом этого файла.
  • readline() — прочитать текстовый файл построчно и вернуть все строки в виде строк.
  • readlines() — прочитать все строки текстового файла и вернуть их в виде списка строк.

3) метод close()

Открытый файл останется открытым, пока вы не закроете его с помощью метода close().

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

Ниже показано, как вызвать метод close() для закрытия файла:

Чтобы закрыть файл автоматически, не вызывая метод close(), используйте оператор with следующим образом:

На практике вы будете использовать оператор with для автоматического закрытия файла.

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

Для демонстрации мы будем использовать файл-zen-of-python.txt.

В следующем примере показано, как использовать метод read() для чтения всего содержимого файла the-zen-of-python.txt в строку:

В следующем примере метод readlines() используется для чтения текстового файла и возврата содержимого файла в виде списка строк:

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

Более краткий способ чтения текстового файла построчно

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

Это более краткий способ чтения текстового файла построчно.

Чтение текстовых файлов UTF-8

Код в предыдущих примерах отлично работает с текстовыми файлами ASCII. Однако, если вы имеете дело с другими языками, такими как японский, китайский и корейский, текстовый файл не является простым текстовым файлом ASCII. И, скорее всего, это файл UTF-8, в котором используются не только стандартные текстовые символы ASCII.

Чтобы открыть текстовый файл UTF-8, вам нужно передать encoding='utf-8' функции open(), чтобы указать ей ожидать символов UTF-8 из файла.

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

Пример 01: Функция read().split()

Самый первый способ чтения данных файла в список — это использование в коде функции Python «read()» вместе с функцией «split()». Откройте файл блокнота как файл «txt» и добавьте в него данные.

Мы создали переменный файловый дескриптор с именем «Файл». Он будет использовать функцию open() Python, чтобы открыть файл «new.txt», используя его путь в параметре для создания списка.Данные файла будут считаны функцией read() и сохранены в переменной «data». Данные файла будут распечатаны. Мы создали список данных с помощью функции «split()», и файловый дескриптор будет закрыт. Будет распечатан вновь созданный список. Вы можете изменить код в соответствии с вашими конкретными требованиями.

  • Файл = открыть( "D :/new.txt", "r")
  • Данные = File.read()
  • Печать ("Данные в файле: " , данные)
  • Файл.close()
  • Печать («Список данных: « , Список)


После запуска этого кода мы получили как данные файла, так и список этих данных.


Пример 02: Функция read.split()

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


Чтобы напрямую использовать данные файла, мы использовали оператор with, чтобы открыть файл в режиме чтения, используя файловый дескриптор "f". Функция read().split() считывала данные из файла, разделяя их по знаку «,» и сохраняя в переменную «Line». Тогда каждая разделенная строка распечатывалась отдельно с помощью цикла for. Вы можете изменить код в соответствии с вашими конкретными требованиями.


Мы получили содержимое файла в виде разделенного списка.


Пример 03: Функция readlines()

Очень похожий метод считывания данных файла в список — использование в коде функции python «readlines()». Рассмотрите приведенные ниже данные в файле new.txt.


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


Данные файла в виде строки были прочитаны в виде списка.

Пример 04: Функция loadtxt()

Последний, но не менее важный способ чтения файла в список — это использование метода loadtxt() Python. Чтобы использовать эту технику, нам нужно использовать библиотеку Numpy в коде. Во-первых, рассмотрите приведенные ниже целочисленные данные в файле, разделенном запятыми.


Импортируйте модуль loadtxt из библиотеки Python Numpy. Затем была создана переменная «строка», которая собирает данные из файла с помощью метода «loadtxt()». Кроме того, эта функция принимает «,» в качестве разделителя в своем параметре после получения пути к файлу. Цикл for будет очень полезен здесь для вывода данных по одному, так как здесь в качестве разделителя используется запятая.


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


Вывод:

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

Об авторе

Калсум Биби

Здравствуйте, я писатель-фрилансер и обычно пишу для Linux и другого контента, связанного с технологиями

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

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

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

Python: чтение текстового файла в список

Начнем с текстового файла с именем grilled_cheese.txt. Этот файл содержит ингредиенты для бутерброда с сыром на гриле. Содержимое нашего файла выглядит так:

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

Мы читаем этот файл в наш код, используя методы open() и readlines():

В нашем коде мы открываем файл с именем «grilled_cheese.txt» в режиме чтения. Режим чтения обозначается символом «r» в нашем операторе open(). Затем мы выводим эти строки на консоль.

Давайте посмотрим, что возвращает наш код Python:

81 % участников заявили, что стали более уверенными в своих перспективах работы в сфере технологий после посещения учебного курса. Примите участие в тренировочном лагере сегодня.

Найдите подходящий вариант для буткемпа

В среднем выпускник буткемпа тратит менее шести месяцев на смену карьеры, начиная с буткемпа и заканчивая поиском своей первой работы.

Начните сменить профессию сегодня

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

Разбить значения на список

Чтобы решить эту проблему, мы используем метод split(). Этот метод позволяет разделить строку с помощью указанного символа-разделителя.

Для начала мы объявляем два списка: количество и ингредиенты. Этот код останется с отступом, потому что он является частью нашего блока кода open().

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

Цикл for позволяет нам читать наш файл построчно. Первое значение в «as_list» — это количество ингредиента. Второе значение — название ингредиента. Затем мы выводим оба этих списка на консоль:

Давайте запустим наш код:

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

Вывод: используйте один из следующих способов чтения файла построчно и сохранения в виде списка:

  • Использование метода чтения и полосы
  • Использование rstrip()
  • Используйте метод for Loop и strip()
  • Использовать линии разделения()
  • Используйте библиотеку pathlib и метод splitlines()
  • Использовать понимание списка

Проблема: как прочитать каждую строку файла в Python и сохранить каждую строку как элемент списка?

В этой статье мы обсудим, как мы можем –

  • Читать файл построчно.
  • Затем сохраните его в списке.

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

Данный файл:


Вывод:

В приведенном выше примере у нас есть файл с именем test.txt, в котором хранятся имена нескольких известных личностей?. Наша цель — прочитать каждую строку (которая в данном случае содержит имена) одну за другой и сохранить их в списке.

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

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

Оглавление

Метод 1: использование методов readlines и strip

  • readlines() – это встроенный в Python метод, используемый для чтения файла построчно и последующего сохранения каждой строки в списке.
  • string.strip(): удаляет начальные и конечные пробелы, включая символы новой строки «\n» и табличные символы «\t».

Мы собираемся использовать метод readlines() для чтения файла построчно, а метод strip() используется для избавления от символа новой строки '\n' при сохранении элементов в списке. Давайте посмотрим на следующую программу, чтобы визуализировать, как мы можем решить нашу проблему, используя вышеупомянутые методы.

Вывод:

Способ 2: Использование line.rstrip()

string.rstrip() — это встроенная в Python функция, которая удаляет все пробелы справа от строки (конечные пробелы). Таким образом, мы можем использовать его, чтобы удалить или отделить элементы от каждой строки, а затем сохранить их в списке, используя нотацию [].

Пример:

Вывод:

Способ 3. Использование цикла for и метода strip()

Другой подход к нашей проблеме заключается в использовании цикла for для перебора строк в файле одну за другой, а затем добавления их в список с помощью функции append(). Функция strip() снова вступает в игру, что позволяет нам удалить символ новой строки.

Вывод:

Метод 4: использование splitlines()

❖ splitlines() — это встроенная в Python функция, которая используется для разделения строки, разрывающейся на границах строк.

Пример:

Вывод:

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

Метод 5: использование библиотеки pathlib и метода splitlines()

Библиотека pathlib появилась в Python 3.4 и имеет удобный метод, известный как read_text(), который позволяет читать файл, не беспокоясь об его открытии или закрытии. Функция splitlines превращает содержимое файла в список, содержащий элементы файла построчно.

Пример:

Вывод:

Способ 6: Использование понимания списка

Понимание списков — это компактный способ создания списков. Простая формула: [выражение + контекст].

  • Выражение: что делать с каждым элементом списка?
  • Контекст: какие элементы выбрать? Контекст состоит из произвольного количества операторов for и if.

Пример [x вместо x в диапазоне (3)] создает список [0, 1, 2] .

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

вывод:

Способ 7: Чтение CSV-файла построчно и сохранение в списке

До сих пор мы видели, как можно читать текстовый файл построчно и сохранять элементы в списке. Теперь давайте обсудим, как мы можем сделать то же самое для CSV-файла. Используемый нами подход в данном случае — это библиотека pandas в Python, которая позволяет нам считывать данные из CSV-файла и сохранять значения в массиве. Мы можем преобразовать массив в список, используя метод tolist().

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


Теперь давайте посмотрим на решение нашей задачи в программе, приведенной ниже.

Вывод:

Заключение

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

Куда идти дальше?

Хватит теории. Давайте попрактикуемся!

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

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

Работая над практическими проектами по кодированию, вы приобретаете ценные навыки кодирования!

Вы хотите перестать учиться на игрушечных проектах и ​​сосредоточиться на практических проектах кода, которые приносят вам деньги и решают реальные проблемы людей?

🚀 Если ваш ответ ДА!, подумайте о том, чтобы стать внештатным разработчиком Python! Это лучший способ улучшить свои навыки владения Python, даже если вы совсем новичок.

Если вы просто хотите узнать о возможностях фриланса, не стесняйтесь посмотреть мой бесплатный веб-семинар "Как создать высокодоходный навык Python" и узнать, как я развивал свой бизнес в сфере программирования в Интернете и как вы тоже можете это сделать — от комфорт собственного дома.

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

Читайте также: