Во-первых, убедитесь, что вы используете Юникода строки: добавить «и» префикс строки:
l = [u"Bücher", u"Hefte, u"Mappen"]
Тогда вы можете написать или добавить в файл:
Я рекомендую вам использовать модуль io, совместимый с Python 2/3.
with io.open("testfile.txt", mode="a", encoding="UTF8") as fd:
for line in l:
fd.write(line + "\n")
Чтобы прочитать текстовый файл в одном куске:
with io.open("testfile.txt", mode="r", encoding="UTF8") as fd:
content = fd.read()
Результат содержание является строка Unicode.
Если расшифровать эту строку, используя кодировку UTF8, вы получите байт строку, как это:
b"B\xc3\xbccher"
Edit с помощью writelines
.
Метод writelines()
записывает последовательность строк в файл. Последовательностью может быть любой итерируемый объект, производящий строки, обычно список строк. Возвратного значения нет.
# add new lines
lines = [line + "\n" for line in l]
with io.open("testfile.txt", mode="a", encoding="UTF8") as fd:
fd.writelines(lines)
Что такое 'stdout_encoding'? – ForceBru
извините его utf-8 – Constantine