0

假设我需要运行一个 python 文件,x.py从 insidey.py传递变量zfrom y.pyto x.py

我将如何做到这一点?像这样的东西会起作用吗?

call(["python","x.py",z])
4

3 回答 3

1

您需要正确封装您的代码。你应该有这样的东西:

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)
于 2013-04-15T17:53:32.030 回答
0

尝试这个

# y.py
import os
z='argument'
os.system('Python x.py '+z)
于 2013-04-15T17:46:35.483 回答
0

使用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"
>>> 
于 2013-04-15T17:49:28.263 回答