我想将这两个变量传递给另一个python文件,我不想将其作为子进程启动。
我希望这两个进程分开,因为file1有很多计算要做,不能等待file2的操作完成。
include os
name="one"
status="on"
os.system('F:\PythonSub\file2.py' name status)
include sys
name=sys.argv[0]
send=sys.argv[1]
print(send, name)
上面的代码返回
send=sys.argv[1]
IndexError: list index out of range
我做错了什么?
答案 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))