使用变量

时间:2017-07-29 22:16:01

标签: python multithreading operating-system

我想将这两个变量传递给另一个python文件,我不想将其作为子进程启动。
我希望这两个进程分开,因为file1有很多计算要做,不能等待file2的操作完成。

FILE1.PY

include os
name="one"
status="on"
os.system('F:\PythonSub\file2.py' name status)

FILE2.PY

include sys
name=sys.argv[0]
send=sys.argv[1]
print(send, name)

上面的代码返回

send=sys.argv[1]
IndexError: list index out of range 

我做错了什么?

2 个答案:

答案 0 :(得分:3)

使用subprocess模块(该链接上的示例)。它支持异步启动进程( os.system ),并将参数作为参数传递。看起来你需要这样的东西:

subprocess.call(["F:\PythonSub\file2.py", name, status])

如果您希望从流程获得输出,则可能需要重定向stdin / stdout流,shell选项可能有用。

编辑:这是错误的,因为subprocess.call同步调用,而不是异步调用。您应该使用链接副本中描述的方法。

答案 1 :(得分:1)

试试这个

import os
name="one"
status="on"
os.system('F:\PythonSub\file2.py %s %s' % (name status))