如果我在这样的文件中有一个函数:
def foo():
print 'foo'
foo()
我可以从另一个文件中调用此文件:
import subprocess
subprocess.call(['python', 'function.py'])
但是,如果函数需要参数:
def foo(foo_var):
print foo_var
我仍然可以使用子进程调用该函数吗?
答案 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)