Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python—当我在一行中应用整个命令时,如何将long命令添加到子流程中_Python_Linux_Shell_Subprocess - Fatal编程技术网

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)