#最基本的启动进程方式类似cmd下执行: notepad.exe text.txt 命令
obj = subprocess.Popen(['notepad.exe','text.txt'], shell = True, stdin=subprocess.PIPE, stdout=subprocess.PIPE ,stderr=subprocess.PIPE)
print(obj.stderr.read().decode('gbk'))
#进入某个环境执行语句,需要依赖上次执行的状态
obj = subprocess.Popen('python', shell = True, stdin=subprocess.PIPE, stdout=subprocess.PIPE ,stderr=subprocess.PIPE)
obj.stdin.write('print(6+7)'.encode('utf-8'))
info,err = obj.communicate()
print(info.decode('gbk'))
#进入某个环境执行语句(adb shell),注意shell内部命令需要带\n,执行完后一定记得执行exit命令退出,否则会阻塞
obj = subprocess.Popen(['adb', 'shell'], shell = True, stdin=subprocess.PIPE, stdout=subprocess.PIPE ,stderr=subprocess.PIPE)
obj.stdin.write('ls\n'.encode('utf-8'))
obj.stdin.write('exit\n'.
本来收集整理网络上相关资料后整理:
从
python
2
.
4版本开始,可以用
subprocess
这个模块来产生子进程,并连接到子进程的标准输入/输出/错误中去,还可以得到子进程的返回值。
subprocess
意在替代其他几个老的模块或者函数,比如:os
.
system os
.
spawn* os
.
popen
*
popen
2
.
* commands
.
*
一、
subprocess
.
.
.
python
中的
subprocess
.
Popen
()使用
从
python
2
.
4版本开始,可以用
subprocess
这个模块来产生子进程,并连接到子进程的标准输入/输出/错误中去,还可以得到子进程的返回值。
subprocess
意在替代其他几个老的模块或者函数,比如:os
.
system os
.
spawn* os
.
popen
*
popen
2
.
* commands
.
*
一、
subprocess
.
Popen
subprocess
模块定义了一个类:
Popen
class
subprocess
.
Popen
( ar
Traceback (most recent call last):
File "D:\bioinformation\AutoDock\mgltools\lib\site-packages\ViewerFramework\VF
.
py", line 941, in tryto
result = command( *args, **kw )
File "D:\bioinformation\AutoDock\mgltools\lib\site-packages\AutoDockTools\autostartCommands
.
py", line 964, in doit
ps =
subprocess
.
Popen
(args)
File "D:\bioinformation\AutoDock\mgltools\lib\
subprocess
.
py", line 710, in __init__
errread, errwrite)
File "D:\bioinformation\AutoDock\mgltools\lib\
subprocess
.
py", line 958, in _execute_child
startupinfo)
WindowsError: [Error 2]
子进程的终止
首先来看一段代码:
p =
subprocess
.
Popen
(['echo','helloworl
.
py'], stdin=
subprocess
.
PIPE, stdout=
subprocess
.
PIPE, stderr=
subprocess
.
PIPE)
print(p
.
poll())
print('Exit code:',
.
.
.
subprocess
.
Popen
():
在一些复杂场景中,我们需要将一个进程的执行输出作为另一个进程的输入。在另一些场景中,我们需要先进入到某个输入环境,然后再执行一系列的指令等。这个时候我们就需要使用到suprocess的
Popen
()方法。该方法有以下参数:
args:shell命令,可以是字符串,或者序列类型,如list,tuple。
bufsize:缓冲区大小,可不用关心
stdi
.
.
.
01
subprocess
.
Popen
(args
02 ,bufsize=0
03 ,executable=None
04 ,stdin=None
05 ,
从
python
2
.
4版本开始,可以用
subprocess
这个模块来产生子进程,并连接到子进程的标准输入/输出/错误中去,还可以得到子进程的返回值。
subprocess
意在替代其他几个老的模块或者函数,比如:os
.
system os
.
spawn* os
.
popen
*
popen
2
.
* commands
.
*
一、
subprocess
.
Popen
subprocess
模块定义了一个类:
Popen
class
subprocess
.
Popen
( args,
bufsize=0,
executable=Non
英语原文: https://www
.
python
.
org/dev/peps/pep-0324/
This module defines one class called
Popen
:
class
Popen
(args, bufsize=0, executable=None,
stdin=None, stdout=None, stderr=None,
.
.
.
云清丰坦:
ElasticSearch从入门到精通,史上最全(持续更新,未完待续,每天一点点)
大头虎学Java: