使用subprocess将参数传递给python函数

时间:2016-05-02 14:11:09

标签: python subprocess

如果我在这样的文件中有一个函数:

def foo():
    print 'foo'

foo()

我可以从另一个文件中调用此文件:

import subprocess
subprocess.call(['python', 'function.py'])

但是,如果函数需要参数:

def foo(foo_var):
    print foo_var

我仍然可以使用子进程调用该函数吗?

2 个答案:

答案 0 :(得分:2)

  

我仍然可以使用子进程调用该函数吗?

呀。

首先,您需要将参数传递给函数:

from sys import argv

def foo(args):
    print args
    >> ['arg1', 'arg2']  # (based on the example below)

foo(argv[1:])

然后在你的主叫代码中:

import subprocess
subprocess.call(['python', 'function.py', 'arg1', 'arg2'])

答案 1 :(得分:2)

不要使用subprocess,只需修改function.py即可使其与导入配合使用:

def foo():
    print 'foo'

if __name__ == '__main__':
    foo()

然后您只需从foo模块导入function

from function import foo

if __name__ == '__main__':
    foo(1)