Автор оригинала: Shubham Sayon.
Резюме: Используйте один из следующих способов прочтения строки файла по строке и храните в списке:
- Используя
ReadLinesИполосаМетод - Использование
RSTRIP () - Используйте
дляПетля иполоса ()метод - Использовать
Сплитлины () - Используйте
pathlibБиблиотека иСплитлины ()Метод - Использовать список пометков
Проблема: Как читать каждую строку файла в Python и храните каждую строку как элемент в списке?
В этой статье мы собираемся обсудить, как мы можем –
- Прочитайте линию файла по строке.
- Затем храните его в списке.
Давайте посмотрим на пример, приведенный ниже, что мы будем ссылаться при обсуждении решений.
Данный файл:
Выход:
['Jeff Bezos', 'Bill Gates', 'Mark Zuckerberg', 'Bernard Arnault & family', 'Mukesh Ambani', 'Steve Ballmer', 'Warren Buffett', 'Larry Page', 'Elon Musk', 'Sergey Brin']
В приведенном выше примере у нас есть файл по имени Test.txt, который хранит имена нескольких известных личностей 😉. Наша цель – читать каждую строку (которая в этом случае содержит имена) один за другим и хранить их в списке.
Примечание: Файл, принятый во внимание, является тем же файлом, как указано в примере выше. Поэтому полученный раствор находится в соответствии с тем же файлом. Я прикрепил файл ниже 👇 для вашего удобства. Пожалуйста, не стесняйтесь скачать его на случай, если вы хотите практиковаться с ним.
Без дальнейшей задержки давайте погрузимся в решения.
Способ 1: Использование методов Readleines и Strip
- Readleines () Встроенный метод в Python используется для чтения строки файла по строке, а затем хранить каждую строку в списке.
- string.strip () : Удаляет ведущие и конечные пробелы, включая новые символы «\ n» и табличные символы \ T ‘.
Мы собираемся использовать Readleines () Способ прочитать строку файла по строке во время полоса () Метод используется для избавления от новой линии символа '\ N' Хотя хранение элементов в списке. Давайте посмотрим на следующую программу для визуализации того, как мы можем решить нашу проблему, используя вышеупомянутые методы.
with open('test.txt') as f:
content = f.readlines()
# you may also want to remove whitespace characters like `\n` at the end of each line
li = [x.strip() for x in content]
print(li)Выход:
['Jeff Bezos', 'Bill Gates', 'Mark Zuckerberg', 'Bernard Arnault & family', 'Mukesh Ambani', 'Steve Ballmer', 'Warren Buffett', 'Larry Page', 'Elon Musk', 'Sergey Brin']
Способ 2: Использование Line.rstrip ()
String.rstrip () Это встроенная функция в Python, которая удаляет все пробелы справа от струны (задние пробелы). Таким образом, мы можем использовать его для прокладки или отдельных элементов из каждой строки, а затем хранить их в списке, используя запись [].
Пример:
with open('test.txt') as f:
lines = [line.rstrip() for line in f]
print(lines)Выход:
['Jeff Bezos', 'Bill Gates', 'Mark Zuckerberg', 'Bernard Arnault & family', 'Mukesh Ambani', 'Steve Ballmer', 'Warren Buffett', 'Larry Page', 'Elon Musk', 'Sergey Brin']
Способ 3: Использование метода для петли и полосы ()
Другой подход к нашей проблеме состоит в том, чтобы использовать цикл для петли для повторения линий в файле один за другим, а затем добавить их в список, используя Добавить () функция. полоса () Функция снова входит в игру, которая позволяет нам распределить новенький символ.
with open("test.txt") as file_in:
lines = []
for line in file_in:
lines.append(line.strip('\n'))
print(lines)Выход:
['Jeff Bezos', 'Bill Gates', 'Mark Zuckerberg', 'Bernard Arnault & family', 'Mukesh Ambani', 'Steve Ballmer', 'Warren Buffett', 'Larry Page', 'Elon Musk', 'Sergey Brin']
Метод 4: Использование сплитлей ()
❖ Сплитлины () Является встроенная функция в Python, которая используется для разрыва струн, разбивающих на границах линии.
Пример:
# Open the file for reading.
with open('test.txt', 'r') as infile:
data = infile.read() # Read the contents of the file into memory.
# Return a list of the lines, breaking at line boundaries.
li = data.splitlines()
print(li)Выход:
['Jeff Bezos', 'Bill Gates', 'Mark Zuckerberg', 'Bernard Arnault & family', 'Mukesh Ambani', 'Steve Ballmer', 'Warren Buffett', 'Larry Page', 'Elon Musk', 'Sergey Brin']
В приведенном выше растворе мы открываем файл для чтения и назначения его переменной « Инжилы . ‘ Как только код завершится запущенным, файл будет автоматически закрыт. Тогда мы используем Сплитлины () Способ хранения его в списке, сохраняя каждую строку файла как отдельный элемент.
Метод 5: Использование библиотеки PATHLIB и метода сплитлина ()
pathlib Библиотека была введена в Python 3.4 и имеет удобный метод, известный как read_text () Это хороший способ прочитать файл, не беспокойтесь о открытии или закрытии. Сплитлий Функция включает содержимое файла в список, содержащее элементы файловой строки по строке.
Пример:
from pathlib import Path
p = Path('test.txt')
lines = p.read_text().splitlines()
print(lines)Выход:
['Jeff Bezos', 'Bill Gates', 'Mark Zuckerberg', 'Bernard Arnault & family', 'Mukesh Ambani', 'Steve Ballmer', 'Warren Buffett', 'Larry Page', 'Elon Musk', 'Sergey Brin']
Метод 6: Использование понимания списка
Понимание списка является компактным способом создания списков. Простая формула [Выражение + контекст] .
- Выражение: Что делать с каждым элементом списка?
- Контекст: какие элементы выбрать? Контекст состоит из произвольного количества
дляа такжееслизаявления.
Пример [X для X в диапазоне (3)] Создает список [0, 1, 2] .
Если вы хотите узнать больше о состязаниях в списке, пожалуйста, посмотрите на наш учебник в блоге здесь. Теперь давайте посмотрим на однострочное решение для нашей проблемы, используя понимание списка.
print([line.rstrip() for line in open('test.txt')])выход:
['Jeff Bezos', 'Bill Gates', 'Mark Zuckerberg', 'Bernard Arnault & family', 'Mukesh Ambani', 'Steve Ballmer', 'Warren Buffett', 'Larry Page', 'Elon Musk', 'Sergey Brin']
Способ 7: Чтение строки файла CSV по линии и хранилище в списке
До сих пор мы видели, как мы можем прочитать линию текстовой файлы по строке и хранить элементы в списке. Теперь давайте обсудим, как мы можем сделать то же самое для CSV файл. Подход, используемый нами, в этом случае, это Пандас Библиотека в Python, которая позволяет читать данные из CSV Файл и храните значения в массиве. Мы можем преобразовать массив в список, используя Tolist () метод.
Файл, который мы собираемся упомянуть в примере, чтобы следовать, выглядит как тот, который приведен ниже.
Теперь давайте посмотрим на решение нашей проблемы в программе, приведенной ниже.
import pandas as pd
data = pd.read_csv('test.csv') # You can also add parameters such as header, sep, etc.
array = data.values
print(array.tolist())Выход:
[['Bill Gates'], ['Mark Zuckerberg'], ['Bernard Arnault & family'], ['Mukesh Ambani'], ['Steve Ballmer'], ['Warren Buffett'], ['Larry Page'], ['Elon Musk'], ['Sergey Brin']]
Заключение
Я надеюсь, что после прочтения этой статьи вы можете прочитать строку файлов по строке, а затем хранить элементы в списке, так что каждая строка представляет элемент списка. Пожалуйста, подпишитесь и оставайтесь настроенными для более интересных статей!
Куда пойти отсюда?
Достаточно теории, давайте познакомимся!
Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?
Практические проекты – это то, как вы обостряете вашу пилу в кодировке!
Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?
Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.
Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.
Присоединяйтесь к свободному вебинару сейчас!
Я профессиональный Python Blogger и Content Creator. Я опубликовал многочисленные статьи и создал курсы в течение определенного периода времени. В настоящее время я работаю полный рабочий день, и у меня есть опыт в областях, таких как Python, AWS, DevOps и Networking.
Вы можете связаться со мной @: