Чтобы прочитать файл в списке в Python, мы можем использовать функцию readlines(), поскольку она возвращает список всех строк, понимание списка с помощью функции Strip() без символа новой строки, цикл for с функцией Strip(), read() с функцией Splitlines().
Существует четыре различных метода чтения файла в список в Python. Давайте рассмотрим их поочередно на нескольких наглядных примерах.
- С помощью функции readlines()
- С функцией Strip()
- Используя цикл for
- С помощью функции read() и splitlines()
- Заключение
С помощью функции readlines()
Метод readlines() — это самый простой способ прочитать текстовый файл и сохранить его содержимое в списке. Когда мы вызываем file.readlines() для файлового объекта, Python считывает все строки из файла и сохраняет их в списке.
Каждый элемент в списке Python соответствует строке в файле, включая символ новой строки \n в конце каждой строки.
Пример: рассмотрим ситуацию, когда у нас есть текстовый файл, и мы должны видеть данные в виде списка, где каждый элемент в списке представляет каждую строку из файла через Python.
with open('test.txt', 'r') as file: lines = file.readlines() print(lines)
Вывод:
['California\n', 'Texas\n', 'Florida\n', 'New York\n', 'Alaska']
С функцией Strip()
Чтобы избежать появления символа новой строки в конце каждой строки, обычно используют понимание списка вместе с методом Strip().
Понимание списков обеспечивает краткий способ применения операции к каждому элементу последовательности (или итерации) в Python.
В этом случае для каждой строки файла вызывается функция Strip() для удаления пробелов в начале и конце строки, включая символ новой строки. В результате у нас остается чистый список строк в Python.
Пример. Нам нужно прочитать файл в виде списка в Python, используя понимание списка с помощью функции Strip().
with open('test.txt', 'r') as file: lines = [line.strip() for line in file] print(lines)
Вывод:
['George Washington', 'Abraham Lincoln', 'Franklin D. Roosevelt', 'John F. Kennedy', 'Barack Obama']
Используя цикл for
При работе с очень большими файлами наиболее эффективным способом использования памяти является перебор самого файлового объекта.
Когда мы используем цикл for для файлового объекта, Python считывает каждую строку по одной, что позволяет нам обрабатывать и добавлять ее в список, даже не сохраняя весь файл в памяти.
Этот метод очень эффективен для больших файлов, поскольку не требует одновременного чтения всего содержимого файла.
Пример: здесь у нас есть файл, и нам нужно прочитать его в списке в Python, используя цикл for.
lines = [] with open('test.txt', 'r') as file: for line in file: lines.append(line.strip()) print(lines)
Вывод:
['Apple', 'Google', 'Amazon', 'Microsoft', 'Facebook']
С помощью функции read() и splitlines()
Альтернативой readlines() является комбинация read() и Splitlines(). Метод read() считывает весь файл в одну строку. Затем вызов функции Splitlines() для этой строки разбивает ее на список, где каждый элемент представляет собой строку из файла в Python.
В отличие от readlines(), функция Splitlines() не включает символ новой строки в конце каждой строки.
Пример:
with open('test.txt', 'r') as file: lines = file.read().splitlines() print(lines)
Вывод:
['Statue of Liberty', 'Grand Canyon', 'Mount Rushmore', 'Golden Gate Bridge', 'Empire State Building']
Заключение
Независимо от того, используем ли мы readlines(), перебираем объект файла с помощью цикла for с функцией Split(), понимаем список с помощью функции Split() или используем комбинацию функций read() и Splitlines(), каждый метод служит цели с небольшими различиями в эффективности использования памяти и обработке новых строк.
Всегда не забывайте обрабатывать файлы с соответствующей кодировкой и использовать их с оператором, чтобы гарантировать правильное закрытие файлов после завершения их операций.