一.subprocess模块
在学习这个模块前,我们先用Python的help()函数查看一下subprocess模块是干嘛的:
即允许你去创建一个新的进程让其执行另外的程序,并与它进行通信,获取标准的输入、标准输出、标准错误以及返回码等。
subprocess模块中定义了一个Popen类,通过它可以来创建进程,并与其进行复杂的交互。
应用:
1 import subprocess 2 3 res=subprocess.Popen("ipconfig", 4 shell=True, 5 stderr=subprocess.PIPE, 6 stdout=subprocess.PIPE) 7 8 print(res.stdout.read().decode("gbk"))
简单应用
1 import socket 2 import subprocess 3 4 sever=socket.socket() 5 6 sever.bind(('192.168.13.137',8016)) 7 8 sever.listen(10) 9 10 while True: 11 print('服务器准备好了') 12 conn,addr=sever.accept() 13 14 while True: 15 try: 16 cmd=conn.recv(1024).decode('utf-8') 17 if cmd=='exit': 18 break 19 res=subprocess.Popen(cmd, 20 shell=True, 21 stderr=subprocess.PIPE, 22 stdout=subprocess.PIPE, 23 ) 24 out=res.stdout.read() 25 err = res.stderr.read() 26 if out: 27 conn.send(out) 28 29 else: 30 conn.send(err) 31 32 except Exception as e: 33 break 34 conn.close()