дизайн сайта / логотип © 2024 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2024.11.26.40833 Каждая строка, возвращаемая объектом reader , представляет собой список значений типа String , содержащих данные с удаленными разделителями. Для данных CSV и JSON мы можем использовать специальные функции, предоставляемые Python для записи данных в файл после его открытия.

Запись списка в файл средствами Python

Является ли это самым чистым способом записи списка в файл, так как writelines() не вставляет символы newline?

Я пытаюсь создать csv файл, который содержит содержимое списка строк в Python, с помощью скрипта ниже. Однако когда я проверяю свой выходной файл, то получается, что каждый символ разграничивается запятой. Как я могу инструктировать csv.writer по делимитации каждой отдельной строки в пределах.

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

Что вы собираетесь делать с файлом? Существует ли этот файл для людей, или других программ с явными требованиями к интероперабельности?

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

Вы могли бы добиться того, чтобы все элементы в item list были строками, используя генераторное выражение:

Помните, что все itemlist list’ы должны быть в памяти, поэтому, позаботьтесь о потреблении памяти.

Используя Python 3 и Python 2.6+ синтаксис:

Это платформонезависимо. Он также завершает финальную строку символом newline, который является а-ля UNIX best practice.

Начиная с Python 3.6, «\n».format(item) можно заменить f-строкой: f»\n» .

Yet another way. Сериализуйте в json с помощью simplejson (входит в состав json в python 2.6):

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

Я подумал, что было бы интересно изучить преимущества использования генеплова, поэтому вот мой take.

В примере в вопросе используются квадратные скобки для создания временного списка, а так эквивалентно:

который без надобности строит временный список из всех строк, которые будут выписаны, по этому может потребляться значительные объемы памяти в зависимости от размера вашего списка и насколько многословен вывод str(item) .

Сериализуйте list в текстовый файл с разделенным значением запятой

Python Сохранить Список в Файл • Как появились csv файлы

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

Программирование на Python: от начала к практике» Глава 10 Файлы и исключения — Русские Блоги

In General

Следствием является синтаксис для writelines() метода

Так же можно использовать функцию print, если вы на python3 следующим образом.

В python>3 можно использовать print и * для распаковки аргумента:

Эта логика сначала будет преобразовывать элементы в list в string(str) . Иногда list содержит кортеж вроде

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

Он сохраняет дамп списка так же как и список, когда мы его загружаем мы сможем прочитать.

Так же по simplejson возможно так же как выше output

Переадресация stdout в файл, возможно, тоже пригодится для этой цели:

В Python3 можно использовать вот такой loop

Вы можете использовать %e или %s в зависимости от вашего требования.

Приведенный выше пример есть из книги «A Byte of Python» by Swaroop C H. swaroopch.com

Python Сохранить Список в Файл • Как появились csv файлы

Вместо того, чтобы иметь дело со списком значений типа String , вы можете считывать данные непосредственно в словарь (технически в объект класса Ordered Dictionary). Обратите внимание, что поскольку имена столбцов изменены, данные в столбцах, измененных с помощью необязательных параметров index_col и parse_dates , также изменятся. Объект reader может обрабатывать файлы CSV с различными стилями форматирования, указывая значения необязательных параметров, некоторые из которых представлены ниже, а с остальными вы можете ознакомиться в документации перейдя по ссылке.

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

Я предполагаю, что вы хотите открыть определенный файл, и вы не имеете дело непосредственно с дескриптором файла (или с дескриптором файла). Наиболее часто используемая функция для открытия файла в 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!

Python Сохранить Список в Файл • Как появились csv файлы

Черноволов Василий Петрович, эксперт по вопросам мобильной связи и интернета
Мнение эксперта
Черноволов Василий Петрович, эксперт по вопросам мобильной связи и интернета
Все сложные вопросы мы с вами решим вместе.
Задать вопрос эксперту
Диалект в контексте чтения и записи CSV — это конструкция, которая позволяет вам создавать, хранить и повторно использовать различные параметры форматирования для ваших данных. Если вам нужна бесплатная консультация, пишите мне!

Как сохранить переменную в файл python

Чтение файла

open Функция возвращает file объект , и он поддерживает протокол итерации питонов. Каждая итерация даст вам строку:

Это напечатает каждую строку файла. Однако обратите внимание, что каждая строка будет содержать символ новой строки \n в конце (возможно, вы захотите проверить, построен ли ваш Python с поддержкой универсальной новой строки — в противном случае вы могли бы также использовать \r\n в Windows или \r на Mac новые строки). Если вы не хотите, вы можете просто удалить последний символ (или два последних символа в Windows):

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

Но вы можете просто удалить все пробелы (включая \n символ) в конце строки , это также удалит все другие конечные пробелы, поэтому вы должны быть осторожны, если они важны:

Однако, если строки заканчиваются \r\n (Windows, «новые строки»), .rstrip() это также позаботится о \r !

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

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

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