试图从另一个python脚本中运行python脚本

时间:2015-01-13 17:23:08

标签: python

我正在尝试从另一个python脚本first.py中运行python脚本second.py

second.py包含声明os.system("python first.py")

first.py:默认打开App以前是记事本。但是,我将默认程序更改为python.exe,现在没有任何反应。 first.py甚至无法运行。

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

而不是使用os.system(),执行另一个脚本的一种简洁方法是将import作为模块:

import second

将导致“second.py”被执行。

>>> with open('test.py', 'w') as f: f.write('print "hello world"')
... 
>>> import test
hello world

答案 1 :(得分:1)

您可以使用subprocess.call模块运行另一个python程序。

import subprocess

subprocess.call("second.py", shell=True)

答案 2 :(得分:1)

如果所有脚本都来自"信任"来源,您可以安全地使用execfile()

with open('second.py', 'w') as f: f.write('print "hello world"')

try:
    execfile('second.py')  # -> hello world
except Exception as e:
    # could also be "pass", "time.sleep()", etc
    print 'exception {} occurred'.format(e)  

print 'continuing on...'

这样做的一个优点是它独立于哪个默认程序与Python脚本相关联。此外,execfile()的参数可以是另一个文件夹中脚本的完整路径,例如:

    execfile('c:/path/to/different/directory/first.py')