如何运行" if"之后的任何其他目录中的特定python脚本。 python脚本中的语句?

时间:2014-11-17 17:28:59

标签: python if-statement

我需要知道如何从其他目录中的python脚本运行python脚本,如下面的算法:

if option==true
 run /path/to/the/directory/PYTHON SCRIPT
else

4 个答案:

答案 0 :(得分:1)

ch3ka指出您可以使用exec来执行此操作。还有其他方式,例如subprocessos.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()