2011-09-12 8 views
0

Pythonスクリプトに、テンプレートを使ってhtmlテーブルに変換する必要がある(キーと値のペアを持つ)定義ファイルを送信したいと思います。Pythonで変数ファイルを解析する

例えば

build number: 5513 
build date: 12/09/2011 

私は簡単にそれを読むことができるようにしたい(各ライン上で反復)とデータテーブルを作成します。 は、次の行が含まれているdef.txt定義ファイルがあると言います。 何かのように:

<tbl> 
    <tr> <td> build number </td> <td> 5515 </td> </tr> 
    <tr> <td> build date </td> <td> 12/09/2011</td> </tr> 
</tbl> 

私はそれは定義ファイルのN行のために仕事をしたいです。私は定義ファイルのフォーマットについて気にしない...

何か提案がありますか?

ありがとうございました。

または。

+0

私はPythonの 'split'機能について少し読むことをお勧めします。また、 'open(url、 'r').readlines()'イテレータがどのように動作するのか調べてみてください。本当に難しいことではありません。ファイル内のすべての行を繰り返して、データをいくつかのリストに分割してください。次に、リストを反復し、すべてのテーブルの内容を追加します。 – Gandi

答えて

3
>>> l = [i.split(": ") for i in open("def.txt")] #read and parse the input 
>>> l #here is what we got 
[['build number', '5513'], ['build date', '12/09/2011']] 
>>> with open("out.txt", "w") as f: #open the out file 
... f.write("<tbl>\n") 
... for k, v in l: #iterate and write 
...   f.write("<tr><td>{}</td><td>{}</td></tr>\n".format(k, v)) 
... f.write("</tbl>\n") 
+0

最初の文はファイルを開いたままにしませんか? – rplnt

+0

@rplnt、私たちは何にも割り当てていないので、ガベージコレクションされるべきです。 – utdemir

+1

それはまだ悪い考えです。誰かがPyPyの下であなたのコードを動かすことによって4倍のパフォーマンス向上を望んでいますか? Ooooops、突然あなたはどこにでもファイルを漏らしています。 CPythonのドキュメントでさえ、クリーンアップのためのrefcountingに頼らないよう勧めています。 – delnan

関連する問題