2017-12-30 62 views
0

等号を使ってキーと値のペアのネストされたHTMLスタイルのタグを使用する設定ファイルで作業する必要があります。ネストされたタグとキーと値のペアでファイルを操作する

私は、このようなファイルの読み込み、セクションの追加、削除、変更、および更新されたファイルの書き込みを可能にするPythonのアプローチを希望します。どちらか

<tag1> 
key1=value1 
key2=value2 

<tag2> 
key3=value3 
</tag2> 

<tag2> 
key3=value four 

</tag2> 

</tag1> 

だから、そのことは非常にHTMLやXMLファイルではなく、WindowsのINIファイル:

ファイルは次のようになり。等号を囲むスペースはありません。無視されるようなファイル内のいくつかのランダムな空白行があり、キーと値のペアの値は引用符を使用せず、スペースを埋め込んでいる可能性があります。

このファイル構造の定義や名前を見つけることができませんでしたが、検索に集中するのが難しく、何かが分からないことがありました。

これは標準的なファイル構造ですか?もしそうなら、それは何と呼ばれていますか?

私は図書館は、彼らがdoccoで容易に入手できない場合は、この構造と、おそらくいくつかの例を使用した作業に強制することができるか上の任意のポインタをいただければと思います。

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

+0

期待される出力形式は何ですか – Shiva

+0

形式は普通のxmlです。各タグのテキスト内容は、簡単な文字列操作(すなわち 'splitlines()'と 'partition( '=')')を使って解析することができます。 – ekhumoro

+0

@ Shiva:ありがとう!出力形式は入力と同じです。私が扱っているファイルが、サードパーティのアプリケーションで使用されているかなり大きいファイル(5k〜10k行)であることを明確にしておく必要があります。 – Ucalegon

答えて

0

設定ファイルを保存するには、configparserモジュールをpythonで使用できます。これにより、アプリ内の設定情報を読みやすくなります。

このような設定ファイルの場合: - :あなたはそれだけでHTMLの種類に行きたい場合は

from configparser import ConfigParser 
cfg = ConfigParser() 

cfg.read('config.ini') 
['config.ini'] 

cfg.sections() 
['installation', 'debug', 'server'] 

cfg.get('installation','library') 

'/usr/local/lib' 

cfg.getboolean('debug','log_errors') 
True 

cfg.getint('server','port') 
8080 

cfg.getint('server','nworkers') 
32 

print(cfg.get('server','signature')) 

[installation] 
library=%(prefix)s/lib 
include=%(prefix)s/include 
bin=%(prefix)s/bin 
prefix=/usr/local 

[debug] 
log_errors=true 
show_warnings=False 

[server] 
port: 8080 
nworkers: 32 
pid-file=/tmp/spam.pid 
root=/www/root 

あなたは、以下に示す。このように、この設定ファイルを読み込むことができます構成、チェックアウトxml.etreeモジュール。幅広い機能を提供します。

+0

ありがとう!ファイル形式は私が悩んでいるものです。私が管理しているプログラムに構成記憶域を追加するのではなく、サードパーティのアプリケーションで使用されるconfig /データベースファイルを操作しています。 'xml.etree'は私が必要とするもののように見えます。具体的には、@ ekhumoroさんの所見を受けてください。 – Ucalegon

+0

答えが役に立つなら、pls upvoteとtickマーク:) –

関連する問題