【发布时间】:2009-07-20 22:37:22
【问题描述】:
我正在通过运行 python 程序来创建 python 文件。然后我想导入这些文件并运行其中定义的函数。我正在创建的文件没有存储在我的路径变量中,我更愿意保持这种方式。
最初我是调用execFile(<script_path>) 函数,然后调用通过执行文件定义的函数。这有一个副作用是总是输入 if __name__ == "__main__" 条件,而我目前的设置是不可能发生这种情况的。
我无法更改生成的文件,因为我已经创建了 100 个并且不想全部修改它们。我只能更改调用生成文件的文件。
基本上我现在所拥有的......
#<c:\File.py>
def func(word):
print word
if __name__ == "__main__":
print "must only be called from command line"
#results in an error when called from CallingFunction.py
input = sys.argv[1]
#<CallingFunction.py>
#results in Main Condition being called
execFile("c:\\File.py")
func("hello world")
【问题讨论】:
-
无关提示:切勿在代码中对文件名使用反斜杠。写“c:/file.py”;它适用于 Windows,并且对于解析路径的所有内容都更加一致。