Python Glossary English

все Python 3Файлы и I/Oфункция

io.IOBase.writelines()

запись

Записывает все строки из итерируемого подряд. Разделители НЕ добавляет — '\n' должен быть в самих строках, иначе всё склеится в одну.

Синтаксис

f.writelines(lines)

Имя обманывает: метод ничего не знает про «строки» и просто вызывает write() для каждого элемента подряд. Он парный к readlines(), который сохраняет '\n' внутри элементов, поэтому f_out.writelines(f_in.readlines()) сохраняет разбиение на строки (байт в байт — только в бинарном режиме: в текстовом '\r\n' при чтении становится '\n'); а вот после splitlines() или strip() переводы строк придётся дописывать самому. На вход годится любой итерируемый объект — генератор, другой файл — а в бинарном режиме элементы должны быть bytes, иначе TypeError.

Примеры

lines = ['line1\n', 'line2\n', 'line3\n']
with open('out2.txt', 'w') as f:
    f.writelines(lines)
with open('out3.txt', 'w') as f:
    f.writelines(f'{i}\n' for i in range(5))

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности