main_config.py
とcustom_config.py
というファイルがあるとします。それらは同じモジュール内にあります。私が何をしたいか他のファイルに格納されている変数でPythonが設定ファイルを上書きする
は2つのそれらの一つは、(メイン)のバージョンが制御されている別の設定ファイル、および他の1(カスタム)を持っている.gitignore
は異なる設定がmain
ファイルと、自分のコンフィグを持ってできるように、D」でありますテンプレートとして使用されます。
コードはPython 3.5で正しく動作するために使用されていましたが、2.7に戻す必要があり、もはや期待どおりに動作しません。私は間違って何をしていますか?私はKeyError: 'client2'
の例外をexec
としています。 main_config.py
の
内容:custom_config.py
の
class MainConfig(object):
clients = {
"client1" = {
"IP" = "127.0.0.1",
"User" = "admin"
}
}
try:
with(open(__file__.replace("main_config.py", "custom_config.py")) as source_file:
exec(source_file.read())
except IOError, e:
print("No custom config detected")
内容:
from (...).main_config import MainConfig
MainConfig.clients["client2"]["IP"] = "0.0.0.0"
MainConfig.clients["client2"]["User"] = "root"
あなたが気づいた ':'と '='に関して、それはタイプミスです。答えの残りの部分については、このトリックを行う必要がありますが、なぜ私はこの 'if'節なしで他のファイルからキーを作ることができないのか分からない - 結局のところ、私のファイルが分割されていなければ、キーが存在するかどうか最初にチェックすることなく、この種のキー作成を使用できます。なぜPython 3.5で動くのですか? – Asunez