0

異なる ini ファイルで python スクリプトを実行したい

いくつかの変数を ini.py に入れ、この inifile で program.py を実行したいと考えています。

私は次のようなものを試しました:

バッチで-> program.py ini

sys.argv[1]
from sys.argv[1] import *

eval('from '+sys.argv[1]+' import *')

しかし、これは機能しません。

今私は書いた:

import sys
f = open('outp.py','w')
f.write("from "+sys.argv[1]+" import *\n")
f.write("print x\n")
with open('program.py', 'r') as content_file:
    content = content_file.read()
f.write(content)
f.close()

execfile( "outp.py")

基本的に、追加のインポートステートメントでプログラムファイルを書き換えます....もっと簡単な方法がありますか?! (必ずしもバッチではありません)thx

4

2 に答える 2

3

INIファイルの解析には、Pythonのconfigparser標準ライブラリモジュールを使用できます。

于 2012-07-18T14:40:22.227 に答える
1

機能を使用できます__import__

my_module=__import__('os')  #basically the same as `import os as my_module`

もちろん、from blah import *これを行うことはできませんが、多くの人は、製品コードでそのイディオムを使用するべきではないと主張します。

ただし、いくつかの変数を設定するだけの場合は、代わりにコマンドライン解析ユーティリティまたは構成ファイル パーサーを検討する必要があります ( configparserargparseおよびoptparseすべてが思い浮かびます -- すべて標準ライブラリにあります)。これにより、ユーザーが信頼できないコードを実行するのを防ぐことができます。 .

于 2012-07-18T14:36:35.527 に答える