Вам всегда нужно что-то делать со строками. Это может быть так же просто, как печатать строки или считать их. Нет никакого смысла в том, чтобы ваш процесс читал строки в памяти, но ничего с этим не делал. Однако обратите внимание, что каждая строка будет содержать символ новой строки n в конце возможно, вы захотите проверить, построен ли ваш Python с поддержкой универсальной новой строки — в противном случае вы могли бы также использовать r n в Windows или r на Mac новые строки. Строки один из самых часто используемых типов данных в Python, поэтому для работы с ними существует куча встроенных операций.

Как прочитать файл построчно в список?

Ответы на этот вопрос — работа сообщества . Отредактируйте существующие ответы, чтобы улучшить этот пост. В настоящее время он не принимает новые ответы или взаимодействия.

На этот вопрос есть ответы на Stack Overflow на русском : Чтение из файла построчно и запись в массив

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

Я хочу прочитать файл построчно и добавить каждую строку в конец списка.

В случае, если вы работаете с большими данными, использование readlines() не очень эффективно, так как это может привести к MemoryError . В этом случае лучше перебрать файл, используя for line in f: и работая с каждой line переменной.

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

Да, к тому, что здесь делают другие, хотя использование open «менеджера контекста» (или какого-либо другого гарантированного способа его закрытия) не является «лучшей практикой», но на самом деле это не один из тех случаев — когда у объекта больше нет ссылок для него будет сборка мусора и закрытие файла, что должно произойти сразу после ошибки или нет, когда обработка списка завершена.

Это более явно, чем необходимо, но делает то, что вы хотите.

Я предпочитаю этот ответ, поскольку он не требует загрузки всего файла в память (в этом случае он все еще добавляется, array хотя могут быть и другие обстоятельства). Конечно, для больших файлов этот подход может смягчить проблемы.

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

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

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

В соответствии с Методами Файловых Объектов Питона , самый простой способ преобразовать текстовый файл в list :

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

Если вам не нужно закрывать файл, эта однострочная работа работает:

Вы можете просто сделать следующее, как было предложено:

Обратите внимание, что у этого подхода есть 2 недостатка:

1) Вы храните все строки в памяти. В общем случае это очень плохая идея. Файл может быть очень большим, и вам может не хватить памяти. Даже если он не большой, это просто пустая трата памяти.

2) Это не позволяет обрабатывать каждую строку по мере их чтения. Поэтому, если вы обрабатываете ваши строки после этого, это неэффективно (требуется два прохода, а не один).

Где вы определяете свою функцию процесса так, как хотите. Например:

Представление latex формул в виде неформатированных строк для графиков matplotlib Python

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

Строки | Python

Открытие файла

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

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

Обратите внимание, что необходимо указать расширение файла. Это особенно важно для пользователей Windows, поскольку такие расширения файлов, как .txt или .doc , и т. Д. По умолчанию скрыты при просмотре в проводнике.

Второй аргумент — mode это r по умолчанию, что означает «только для чтения». Это именно то, что вам нужно в вашем случае.

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

Для чтения файла вы можете опустить mode или передать его явно:

Оба откроют файл в режиме только для чтения. Если вы хотите прочитать в двоичном файле в Windows, вам нужно использовать режим rb :

На других платформах ‘b’ (двоичный режим) просто игнорируется.

Теперь, когда я показал, как с open файлом, давайте поговорим о том факте, что вам всегда это нужно close снова. В противном случае он будет хранить открытый дескриптор файла до тех пор, пока не завершится процесс (или Python не обработает дескриптор файла).

Это не удастся закрыть файл, когда что-то между open и close выдает исключение. Вы можете избежать этого, используя try и finally :

Однако Python предоставляет контекстные менеджеры, которые имеют более симпатичный синтаксис (но open он почти идентичен тому, что try и finally выше):

Последний подход — рекомендуемый подход для открытия файла в Python!

Префикс br определяет «сырые» строки байтов, в которых каждый байт всегда выводится в шестнадцатеричном формате, а символы обратного слеша дополнительно экранируются. Обычные строки байтов могут содержать ASCII символы, но иногда это нежелательно: Но если вы все еще не догадались как она работает, то лучше воспринимайте его не как удаление символов, а как перемещение курсора влево. Данная последовательность переводит курсор на следующую строку и выполняет отступ, длина которого равна длине предшествоваишей f части строки.

Литералы строк | Python
Обратите на то как выполняется непосредственный вывод строк, в котором сохраняются экранированные последовательности и на то как выполняется вывод с помощью функции print() которая выполняет их интерпретацию и заменяет последовательности \\ на \ .
Черноволов Василий Петрович, эксперт по вопросам мобильной связи и интернета
Мнение эксперта
Черноволов Василий Петрович, эксперт по вопросам мобильной связи и интернета
Все сложные вопросы мы с вами решим вместе.
Задать вопрос эксперту
Строки один из самых часто используемых типов данных в Python, поэтому для работы с ними существует куча встроенных операций. Если вам нужна бесплатная консультация, пишите мне!

Экранированные последовательности | Python

Оцените, пожалуйста, публикацию:
Загрузка...

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

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