40

(確かに)簡単な答えの愚かな質問...

configparserを使用して、ファイルからいくつかの文字列を読み取ります。文字列に「%」記号(たとえば$%&)が含まれている場合、次のように文句を言います。

ConfigParser.InterpolationSyntaxError:'%'の後に'%'または'('、見つかった: "%&'"を続ける必要があります

これに精通している人はいますか?

ありがとう!

4

3 に答える 3

69

環境変数の置換が必要ない場合は、ConfigParserではなくRawConfigParserを使用してください。

于 2013-01-15T15:02:07.600 に答える
39

2つ 書く%

V = ('%%', 'MHz', 'GHz')

結果:

('%', 'MHz', 'GHz')
于 2015-03-05T09:57:00.643 に答える
25

デフォルトでは、ConfigParserでは値の補間が有効になっています。これは、プロパティファイル内で変数を使用できることを意味します。

Python 3.2以降、コンストラクターで補間を無効にできます。

configParser = configparser.ConfigParser(interpolation=None)

補間を無効にしたくない場合は、ドキュメントの例に示すように、プロパティファイルに2つ続けて配置することにより、 記号をエスケープする必要があります。%%

RawConfigParserこれはレガシーバリアントであることに注意してください。Pythonのドキュメントから:

代わりに、内部に格納される値のタイプをチェックするConfigParserの使用を検討してください。補間が必要ない場合は、ConfigParser(interpolation = None)を使用できます。

于 2020-06-26T09:50:30.990 に答える