Правильный способ записи строки в файл? - PullRequest
925 голосов
/ 28 мая 2011

Я привык делать print >>f, "hi there"

Однако, похоже, что print >> устарела. Каков рекомендуемый способ сделать строку выше?

Обновление : Относительно всех этих ответов с "\n" ... это универсально или специфично для Unix? IE, я должен делать "\r\n" на Windows?

Ответы [ 12 ]

0 голосов
/ 05 июля 2019

Когда мне нужно много писать новых строк, я определяю лямбду, которая использует функцию print:

out = open(file_name, 'w')
fwl = lambda *x, **y: print(*x, **y, file=out) # FileWriteLine
fwl('Hi')

Этот подход имеет то преимущество, что он может использовать все функции, которые доступны сфункция print.

Обновление: Как упоминается Георгий в разделе комментариев, можно улучшить эту идею с помощью функции partial:

from functools import partial
fwl = partial(print, file=out)

ИМХО, это более функциональный и менее загадочный подход.

0 голосов
/ 14 июня 2019

Вы также можете попробовать filewriter

pip install filewriter

from filewriter import Writer

Writer(filename='my_file', ext='txt') << ["row 1 hi there", "row 2"]

Записывает в my_file.txt

Принимает итерацию или объект с поддержкой __str__,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...