2016-07-03 3 views
0

xmlファイルから必要なデータを抽出する次のコードがあります。私はそれをターミナルに保存して問題なく開けます。しかし、私はtxtファイルに列名を挿入するのが面倒です。私は答えを探していたが、正しい解決策が見つからなかった。誰か助けてくれますか?ありがとうございました!!Pythonのtxtファイルに列名を割り当てる

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)を呼び出すことです。

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のための文字列を作るためのより良い方法がありますが、我々は現時点では、これらの心配する必要はありません。代わりにsys.stdoutをいじって、すべての行の

、これを試してみてください。

+0

ありがとう、私はコードのトレースバック(最新の呼び出し最後の)実行したときに、私はこのエラーメッセージを受信: ファイル「nyp.py」、ライン102、で ライン=プログラムID +「」+季節+」を\ n " TypeError:+: 'Element'と 'str'のためのサポートされていないオペランドのタイプ私はPythonには全く新しいので忍耐強く感謝します。 – achimneyswallow

+0

@ Hsun-YiHsieh私は 'programID'と' season'がすでに文字列ではなかったことに気付かず、ごめんなさい。私はそれを反映するために私の答えを更新しました。 –

+0

str(programID)、str(season)はオブジェクトを生成します。代わりに、programID = program.findall( 'program')。text season = program.find( 'season')。textはテキストコンテキストを生成します。しかし、アダムの解決策は正しいです。しかし、このコードセットでは、programIDとseasonという列名を挿入することはできません。その他の提案はありますか? – achimneyswallow

関連する問題