Python—当我在一行中应用整个命令时,如何将long命令添加到子流程中
如何将此完整的Python—当我在一行中应用整个命令时,如何将long命令添加到子流程中,python,linux,shell,subprocess,Python,Linux,Shell,Subprocess,如何将此完整的导出显示=:0.0&&python/home/src/upload.py%s%s&命令添加到子流程 # valid command u ="""export DISPLAY=:0.0 && python /home/src/upload.py %s %s &""" % (s[1], s[2]) d ="""export DISPLAY=:0.0 && python /home/src/download.py %s %s &""" %
导出显示=:0.0&&python/home/src/upload.py%s%s&
命令添加到子流程
# valid command
u ="""export DISPLAY=:0.0 && python /home/src/upload.py %s %s &""" % (s[1], s[2])
d ="""export DISPLAY=:0.0 && python /home/src/download.py %s %s &""" % (s[1], s[2])
# seems to work like this but need to add the u and d on this
subprocess.Popen(["python","/home/src/upload.py"], stdout=subprocess.PIPE)
subprocess.Popen(["python","/home/src/download.py"], stdout=subprocess.PIPE)
将
DISPLAY
变量添加到环境变量中;参数是参数列表的外部元素:
import os
env = os.environ.copy()
env['DISPLAY'] = ':0.0'
p1 = subprocess.Popen(["python","/home/src/upload.py"] + s[1:3],
env=env, stdout=subprocess.PIPE)
p2 = subprocess.Popen(["python","/home/src/download.py"] + s[1:3],
env=env, stdout=subprocess.PIPE)
命令的基本作用是设置环境变量,然后使用参数调用python脚本。您可以通过将代码修改为:
导入操作系统
导入子流程
new_env=os.environ.copy()
新_env['DISPLAY']=':0.0'
subprocess.Popen([“python”,“/home/src/upload.py”,s[1],s[2]],stdout=subprocess.PIPE,env=new_env)
subprocess.Popen([“python”,“/home/src/download.py”,s[1],s[2]],stdout=subprocess.PIPE,env=new_env)