我需要知道如何从其他目录中的python脚本运行python脚本,如下面的算法:
if option==true
run /path/to/the/directory/PYTHON SCRIPT
else
答案 0 :(得分:1)
ch3ka指出您可以使用exec
来执行此操作。还有其他方式,例如subprocess
或os.system
。
但是Python通过设计很好地适应了自己 - 这是创建和导入模块背后的整个概念。我认为在大多数情况下,最好只将脚本封装在一个类中,然后将以前在脚本的if __name__ == '__main__'
部分中的代码移动到类的__init__
部分:< / p>
class PYTHON_SCRIPT:
def __init__(self):
# put your logic here
然后你可以导入这个类:
import PYTHON_SCRIPT
# no need to say if a boolean is true, just say if boolean
if option:
PYTHON_SCRIPT()
这将使您能够在您认为合适的情况下使用脚本中的属性。
答案 1 :(得分:0)
使用execfile
。
的execfile(...) execfile(filename [,globals [,locals]])
Read and execute a Python script from a file. The globals and locals are dictionaries, defaulting to the current globals and locals. If only globals is given, locals defaults to it.
在pyton3中,execfile
消失了。您可以改为使用exec(open('/path/to/file.py').read())
。
答案 2 :(得分:0)
这里已经回答了 How do I execute a program from python? os.system fails due to spaces in path
使用子流程模块
import subprocess
subprocess.call(['C:\\Temp\\a b c\\Notepad.exe', 'C:\\test.txt'])
其他方法包括在其他帖子中使用os库或execfile进行系统调用
答案 3 :(得分:0)
如果脚本设计得很好,它可能只是启动一个main函数(通常称为main),所以最合适的方法是在代码中导入这个main函数并调用它,这就是pythonic方式。您只需将脚本目录添加到python路径中即可。
如果可能的话,总是尽量避免exec,subprocess,os.system,Popen等。
示例:
import sys
sys.path.insert(0, 'path/to/the/directory')
import python_script
sys.path.pop(0)
if option:
python_script.main()