Почему Python не читает символ конца строки при открытии файла utf-16? - PullRequest
0 голосов
/ 21 июня 2019

Я объединяю два текстовых файла, один - utf-16.Когда вы читаете строки из файлов и разделяете их, файл utf-16 не имеет конца строки.Все идет в одну строку, поэтому я должен указать символ конца строки.Есть идеи, почему?

Ниже кода, который работает, но я хочу знать, зачем мне нужен конец строки для utf-16.

with open(file_temp, 'w') as outfile:
    with open(file_normal) as infile:
        for line in infile:
            outfile.write(line.split(",")[0]) # auto end of line
    with open(file_utf16, encoding='utf-16') as infile: # different file format
        for line in infile:
            outfile.write(line.split(",")[0] + "\n") # needs end of line char for some reason ?

Я ожидал конца строкисимвол, присутствующий в файле utf-16 при чтении с правильной кодировкой.

1 Ответ

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

Новая строка не имеет ничего общего с кодировкой как таковой

with open("someFile_utf16.txt", "w",encoding='utf-16') as infile:
    for x in range(10):
        infile.write(str(x))

with open("someFile_normal.txt", "w") as infile:
    for x in range(10):
        infile.write(str(x))

Оба файла имели одинаковые данные

0123456789

Единственное возможное объяснение состоит в том, что в нормальный файл записан конец строки , а в файле utf-16 его нет

Для получения дополнительной информации

https://docs.python.org/3/tutorial/inputoutput.html

...