2016-07-03 3 views
0

У меня есть следующий код, который извлекает необходимые данные из XML-файла. Я могу сохранить его на терминале и открыть его без проблем. Однако я столкнулся с проблемой ввода имен столбцов в txt-файл. Я искал ответ, но не нашел правильного решения. Кто-нибудь поможет мне здесь? Спасибо!!Назначение имен столбцов в txt-файле в python

import sys 
reload(sys) 
sys.setdefaultencoding('utf-8') 
orig_stdout = sys.stdout 
sys.stdout = f 

for program in root.findall('program'): 

    programID = program.find('programID') 
    season = program.find('season') 
    print programID, season 


sys.stdout = orig_stdout 
f.close() 

ответ

0

Способ записи данных в файл в Python является вызов .write(content) на объект файла, а не перенаправить стандартный вывод на него.

Вместо всех линий Мессинга с sys.stdout, попробуйте следующее:

f = open("file.txt", "w") # Open the file in (w)rite mode 

f.write("programID,Season\n") # Header line 
for program in root.findall("program"): 
    programID = program.find("programID").text 
    season = program.find("season").text 
    line = programID + "," + season + "\n" 
    f.write(line) 

f.close() # Outside the loop 

Есть более эффективные способы, чтобы сделать строку для line, но нам не нужно беспокоиться о тех, кто в данный момент.

+0

Спасибо, но я получил сообщение об ошибке, когда я запускал код TraceBack (самый последний вызов последнего): Файл «nyp.py», строки 102, в линии = programID + «» + сезон + " \ n " TypeError: неподдерживаемый тип операндов для +: 'Element' и 'str'. Я совершенно новый для python, и я высоко ценю ваше терпение. – achimneyswallow

+0

@ Hsun-YiHsieh Я не понимал, что 'programID' и' season' уже не были нитками, извините. Я обновил свой ответ, чтобы отразить это. –

+0

str (programID), str (сезон) генерирует объекты. Вместо этого programID = program.findall ('program'). Text season = program.find ('season'). Text генерирует текстовый контекст. Но решение Адама верно. Тем не менее, я до сих пор не могу вставлять имена столбцов - programID и сезон с этим набором кода. Любые другие предложения? – achimneyswallow

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