Тема: Кодування файлу
Як в Python записати utf-8 текст у файл, щоб кінець стрічки
\n
вірно інтерпретувався?
Ось як я записую текст у файл, якщо в тексті лише англійські букви і цифри:
def write_csv_to_dir(x, csv_path, var_filename):
if (x.text):
with open(csv_path + var_filename, 'w') as f:
print(x.text, file=f)
else:
with open(csv_path + var_filename, 'w') as f:
print('The content is empty.', file=f)
Однак якщо в тексті трапляються цікаві символи, наприклад китайські ієрогліфи, то отримую такі помилки:
'ascii' codec can't encode character '\uff1a' in position 289624: ordinal not in range(128)
'ascii' codec can't encode character '\xe8' in position 286495: ordinal not in range(128)
Тоді я додав кодування utf-8:
print(x.text.encode('utf-8'), file=f)
В такому вигляді текст із китайськими ієрогліфами зберігається коректно, однак файл тепер виглядає як величезна суцільна стрічка. Бо символ кінця стрічки
\n
інтерпретується як текст і стрічка не переноситься.
Підкажіть хто шарить плз.