変数名を取得し、存在するかどうかを確認し、ファイルから(ピクルを使用して)グローバル名前空間にロードする小さな関数を作成しようとしています。Pythonの変数にファイルをロードする
私は、ファイルでこれを使用してみました:
import cPickle
#
# Load if neccesary
#
def loadfile(variable, filename):
if variable not in globals():
cmd = "%s = cPickle.load(file('%s','r'))" % (variable, filename)
print cmd
exec(cmd) in globals()
をしかし、それは動作しません - 変数が定義されません。私は間違って何をしていますか?
これは、ファイルをexecfileで読み込んだときにのみ機能しますが、読み込み時には読み込まれません。何故ですか?ありがとう! –
おそらく、グローバル変数は、それらが入っているモジュールに対してのみグローバルであるからです。 –
ありがとう。 モジュールからインタプリタのglobals()に自動的にアクセスする方法はありますか? –