14

PythonでConfigParserを使用しています

config.ini は

[general]
name: my_name
base_dir: /home/myhome/exp

exe_dir: ${base_dir}/bin

ここで私はexp_dirなり/home/myhome/exp/binません${base_dir}/bin

${base_dir}に置き換えられることを意味し/home/myhome/exp automaticallyます。

4

3 に答える 3

21

ConfigParser補間を使用できます

コア機能に加えて、SafeConfigParser は補間をサポートしています。これは、同じセクション内の他の値、または特別な DEFAULT セクション内の値を参照するフォーマット文字列を値に含めることができることを意味します。初期化時に追加のデフォルトを指定できます。

例えば:

[My Section] 
foodir: %(dir)s/whatever 
dir=frob 
long: this value continues    
    in the next line 

%(dir)s を dir の値に解決します (この場合は frob)。すべての参照展開はオンデマンドで行われます。

あなたの例は次のようになります。

[general]
name: my_name
base_dir: /home/myhome/exp

exe_dir: %(base_dir)s/bin
于 2011-02-15T01:57:50.527 に答える
9

「${foo}」の代わりに「%(foo)s」と書きます。( http://docs.python.org/library/configparser.htmlを参照し、「補間」を検索してください。これは、通常の ConfigParser または SafeConfigParser のいずれかで機能します。)

于 2011-02-15T01:58:11.060 に答える
4

Python 3 では、 を使用でき${base_dir}/bin拡張補間により、他のセクションの変数を使用できます。例:

[Common]
home_dir: /Users
library_dir: /Library
system_dir: /System
macports_dir: /opt/local

[Frameworks]
Python: 3.2
path: ${Common:system_dir}/Library/Frameworks/

[Arthur]
nickname: Two Sheds
last_name: Jackson
my_dir: ${Common:home_dir}/twosheds
my_pictures: ${my_dir}/Pictures
python_dir: ${Frameworks:path}/Python/Versions/${Frameworks:Python}
于 2016-02-28T23:36:30.013 に答える