码迷,mamicode.com
首页 > 编程语言 > 详细

python 之subprocess模块

时间:2018-12-15 14:30:39      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:cep   pipe   pip   ack   bin   RoCE   rom   inpu   end   

1、将结果传给屏幕

技术分享图片

2、将结果输给管道(读一次就没有了)

技术分享图片

3、subprocess(可以扔到管道的东西)

技术分享图片

 

 4、远程执行DOS命令

 1、服务端

from socket import *
import  subprocess
ip_port = ("127.0.0.1",8080)
back_log = 5
buffer_size = 1024
tcp_server = socket(AF_INET,SOCK_STREAM)
tcp_server.bind(ip_port)
tcp_server.listen(back_log)
while 1:
    conn,adr = tcp_server.accept()
    print("新的客户端连接是%s,地址是%s"%(conn,adr))
    while 1:
        try:
            cmd = conn.recv(buffer_size)
            if not cmd:
                break
            print("收到客户端的命令",cmd)
            res = subprocess.Popen(cmd.decode("utf-8"),shell= True,stdout=subprocess.PIPE,stderr=subprocess.PIPE,stdin=subprocess.PIPE)
            err = res.stderr.read()
            # if not err:#为空
            if err:#有值
                cmd = err
            else:
                cmd_res = res.stdout.read()#bite
            conn.send(cmd_res)
        except Exception as e:
            print(e)
            break
    conn.close()

  

  技术分享图片

2、客户端

from socket import *
ip_port = ("127.0.0.1",8080)
back_log = 5
buffer_size = 1024
tcp_client = socket(AF_INET,SOCK_STREAM)
tcp_client.connect(ip_port)
while 1:
    cmd = input(">>>>>>>>:").strip()
    if not cmd:
        continue
    if cmd == "quit":
        break
    tcp_client.send(cmd.encode("utf-8"))
    cmd_res = tcp_client.recv(buffer_size)
    print("命令的执行结果是",cmd_res.decode("gbk"))
tcp_client.close()

  技术分享图片

 

python 之subprocess模块

标签:cep   pipe   pip   ack   bin   RoCE   rom   inpu   end   

原文地址:https://www.cnblogs.com/huoyunxieshen/p/10123243.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!