假设我需要运行一个 python 文件,x.py
从 insidey.py
传递变量z
from y.py
to x.py
。
我将如何做到这一点?像这样的东西会起作用吗?
call(["python","x.py",z])
假设我需要运行一个 python 文件,x.py
从 insidey.py
传递变量z
from y.py
to x.py
。
我将如何做到这一点?像这样的东西会起作用吗?
call(["python","x.py",z])
您需要正确封装您的代码。你应该有这样的东西:
y.py
def y_func(*args):
# everything y does
if __name__ == "__main__":
import sys
y_func(*sys.argv)
x.py
from y import y_func
def x_func(*args):
#do stuff
y_result = y_func(*yargs)
#finish x stuff
if __name__ == "__main__":
import sys
x_func(*sys.argv)
尝试这个
# y.py
import os
z='argument'
os.system('Python x.py '+z)
使用subprocess
优于os.system
import subprocess
subprocess.check_output(["ls", "-ltr"])
在您的情况下,假设您有a.py
:
import sys
print sys.argv[1:]
并在提示中:
>>> import subprocess
>>> subprocess.check_output(["python", 'a.py', 'aaa bbb ccc'])
"['aaa bbb ccc']\n"
>>>