2014-02-11 5 views
0

У меня есть .TSV-файл с именами фильмов и данными фильмов, которые я анализирую с помощью пакета PYDOT. файл связан Here. Файл, содержащий JSON, используемый для его создания, связан с Here.Юникод правильно пишет, неправильно читает

Файл написан на основе разобранного JSON и написан с использованием кодировки utf-8. Хотя файл правильно пишет, когда я прочитал его обратно в Python, интерпретатор, кажется, последовательно останавливается на следующей строке:

'Taken\t["Liam Neeson", " Maggie Grace", " Jon Gries", " David Warshofsky"]\n' 
'The Walking Dead\t["Andrew Lincoln", " Steven Yeun", " Chandler Riggs",' 

Вывод должен выглядеть следующим образом, и записывается как таковой в файле :

Taken ["Liam Neeson", " Maggie Grace", " Jon Gries", " David Warshofsky"] 
The Walking Dead ["Andrew Lincoln", " Steven Yeun", " Chandler Riggs", " Norman Reedus"] 
Toy Story 3 ["Tom Hanks", " Tim Allen", " Joan Cusack", " Ned Beatty"] 

здесь код, который используется для создания текстового файла:

step3v2=open('step3.txt', 'rU') 
step4=codecs.open('step4.txt', mode='w', encoding='utf-8') 
data=[] 
merged='' 
for line in step3v2: 
    data.append(json.loads(line)) 

for row in data: 
    moviename=row[u'Title'] 
    row[u'Actors']=row[u'Actors'].split(',') 
    actors=json.dumps(row[u'Actors']) + '\r\n' 
    merged+=moviename + '\t' 
    merged+=actors 
step4.write(merged) 

Вот код для чтения файла:

graph=pydot.Dot(graph_type='graph', charset='utf8') 
step4v2=open('step4.txt', 'rU') 


textfile=step4v2.readlines() 
for line in textfile: 
    print repr(line) 
+0

переводчик, кажется, arbritarily останавливается на следующих line: означает что? есть ли ошибка? или он просто ждет или? –

+0

Ошибка. В строке есть больше, что интерпретатор просто не читает. Я отредактирую вопрос для большей ясности. – Mike

+0

и произвольно означает иногда? или всегда? –

ответ

1
step4v2=open('step4.txt', 'rU') #this means universal newlines 

, вероятно, следует

step4v2=open('step3.txt', 'rb') #this means read the binary data 

с помощью файла на раздаточной вы связаны

>>> f =open (os.path.expanduser("~\\Downloads\\step4.txt"),"rb") 
>>> for line in f: print repr(line) 

работал отлично, казалось

+0

Такая же проблема возникает. – Mike

+0

hmm ok thats очень странно ... –

+0

ошибка, может быть, я сказал вам, что неправильно менять ... –

Смежные вопросы