Дополнительно
Запись списка в файл с помощью Python
Является ли это самым чистым способом записи списка в файл, поскольку writelines()
не вставляет символы новой строки?
file.writelines(["%s\n" % item for item in list])
Кажется, что должен быть стандартный способ...
593
17
Вы можете использовать цикл:
В Python 2 вы также можете использовать
Если вам нравится один вызов функции, по крайней мере, уберите квадратные скобки
[]
, чтобы выводимые строки создавались по одной за раз (genexp, а не listcomp) - нет причин занимать всю память, необходимую для материализации всего списка строк.Что вы собираетесь делать с файлом? Существует ли этот файл для людей или других программ с четкими требованиями к совместимости?
Если вы просто пытаетесь сериализовать список на диск для последующего использования тем же приложением python, вам следует pickleing список.
Чтобы прочитать его обратно:
Более простой способ:
``lang-python outfile.write("\n".join(itemlist))
Помните, что весь список
itemlist
должен находиться в памяти, поэтому позаботьтесь о потреблении памяти.Используя в Python 3 и в Python 2.6+ синтаксис:
Это платформо-независимым. Он также завершает последняя строка с символом перевода строки, который представляет собой лучшие практики в Unix.
Еще один способ. Сериализовать в JSON используя пакет (входит в формате JSON в Python 2.6):
Если вы изучите output.txt:
Это полезно, потому что синтаксис для Python, он'ы для чтения человеком, и она может быть прочитана другими программами на других языках.
Я думал, что было бы интересно исследовать преимущества использования genexp, так вот'ы мое мнение.
Пример в этом вопросе используются квадратные скобки, чтобы создать временный список, а так это равносильно:
Что напрасно создает временный список всех строк, которые будут записаны, это может потреблять значительные объемы памяти в зависимости от размера вашего списка и как подробный вывод `ул.(товара) является.
Падение в квадратных скобках (в эквиваленте для удаления список упаковки
()
вызов выше), а не пройдет временное генератор файл.writelines()
:Этот генератор будет создавать новую строку с завершающим представлением объектов "номенклатура" по требованию (т. е. как они выписаны). Это хорошо по нескольким причинам:
Это позволяет избежать проблем с памятью, таких как:
(Я вызвал эту ошибку, ограничения на Python's Макс. виртуальная память до ~100мб с
параметр ulimit -V в 102400
).Положить памяти, на одну сторону, этот метод еще'т на самом деле быстрее, чем оригинал:
(Питон 2.6.2 на Linux)
Потому что я'м ленивый....
Сериализовать список в текстовый файл со значением sepparated запятая
В Целом
Ниже приведен синтаксис для writelines() способ
Пример
Ссылка
http://www.tutorialspoint.com/python/file_writelines.htm
Вы также можете использовать функцию печати, если вы'вновь на питон3 следующим образом.
Почему Дон'т вы попробовать
Эта логика будет сначала преобразовать элементы в список в
строку(STR)
. Иногда список содержит кортеж, какЭта логика будет писать в файл каждая запись в новой строке. Мы в дальнейшем можем использовать функции "eval" при загрузке каждого кортежа при чтении файла:
Еще один способ итераций и добавив строку:
Как Это Работает: Во-первых, открыть файл с помощью встроенной функции Open и указать имя файла и режим, в котором мы хотим открыть файл. Режим может быть режим чтения (’Р’), режим записи (’ж’) или режим append (’а’). Мы можем также указать будем ли мы читать, писать, или добавляя в текстовом режиме (’Т’) или Binary режим ("б"). На самом деле существует множество более доступных режимов и помочь(открыть) даст вам более подробную информацию о них. По умолчанию открытые() считает файл, быть файл'ext T и открывает его в режиме Р'ead. В нашем примере, мы сначала открываем файл в написать в текстовом режиме и использовать запись метод объектный файл для записи в файл, а затем мы, наконец, закройте файл.
Приведенный выше пример с книгой "Байт питона" и по Сваруп З. Х. swaroopch.com
Пусть среднее будет в списке, то:
Вы можете использовать
%e
или%S
в зависимости от ваше требование.