2016-05-11 2 views
0

У меня есть этот файл testpi.txt, который я бы хотел преобразовать в список предложений.readlines() function and unicodes

>>>cat testpi.txt 
    This is math π. 
    That is moth pie. 

Вот что я сделал:

r = open('testpi.txt', 'r') 
    sentence_List = r.readlines() 
    print sentence_List 

И, когда вывод направляется в другой текстовый файл - output.txt, это то, как он выглядит в output.txt:
['This is math \xcf\x80. That is moth pie.\n']

Я тоже пробовал кодеки, r = codecs.open('testpi.txt', 'r',encoding='utf-8'),
, но вывод тогда состоит из ведущего «u» во всех записях.

Как я могу отобразить этот байт строки - \xcf\x80, как π, в output.txt

Пожалуйста, руководство меня, спасибо.

ответ

1

Проблема в том, что вы печатаете весь list, который дает вам формат вывода, который вы не хотите. Вместо печатать каждую строку по отдельности, и он будет работать:

r = open('t.txt', 'r') 
sentence_List = r.readlines() 
for line in sentence_List: 
    print line, 

Или:

print "['{}']".format("', '".join(map(str.rstrip, sentence_List))) 
+0

Спасибо большое, за ответы. Однако мне нужен вывод как список предложений, которые будут обрабатываться далее. Я пошел вперед с ранее упомянутым «output.txt», но при вычислении частот слов π не существует, вместо этого отображается «\ xcf \ x80», и это нежелательно. Не могли бы вы предложить что-то. – abT

+0

Могу ли я получить список в текстовом файле, что-то вроде этого -> ['Это математика π. Это moth pie. \ N '] – abT

+0

@abT: Я отредактировал последний пример кода в своем ответе, чтобы сделать то, что, как я думаю, вы хотите: напечатайте его «как список», но сохранив причудливые символы. –