python 2.03 内置模块 subprocess

# 调用操作系统的命令



#
# res = input(r'''
# Microsoft Windows [版本 10.0.19042.1288]
# (c) Microsoft Corporation。保留所有权利。
# %s>
# '''%dir_name)
#
# # os.system 程序把要执行的命令给操作系统后,就结束了该命令的返回值是运行程序的状态码  0  1
# # 命令执行后出现了结果是被操作系统丢到了当前的终端,因为当前终端是pycharm 是utf-8编码,解码gbk,出现了乱码
# # 如果是运行cmd中,不会出现乱码
# # 解决执行命令后返回数据乱码的问题
#
# os.system(res)

#
# import  subprocess
#
# obj = subprocess.Popen('dir',  # 要执行的命令
#                  shell=True,  # 调用系统的命令解释器
#                  stdout=subprocess.PIPE, # stdout 正确命令的输出  ,
#                                          # subprocess.PIPE 管道的意思 相当于把dir这个命令的输出
#                                          # 单独通过PIPE这个水管给到变量stdout中去。
#                  stderr=subprocess.PIPE  # stdout 错误命令的输出  ,
#                                          # subprocess.PIPE 管道的意思 相当于把dir这个命令的输出
#                                          # 单独通过PIPE这个水管给到变量stdout中去。
#                  )
#
# res = obj.stdout.read().decode('gbk')   # 得到一个b 类型的数据
#                                         # 为什么用GBK的编码因为现在系统是Windows的 linux的话用utf-8



import time

f = subprocess.Popen(
                'cmd.exe /C'+r'D:\chihujing\day2\wondows10_clear.bat',
                 shell=True,
                 stdout=subprocess.PIPE,    # 程序执行正确后输出的信息管道给stdout,
                 stderr=subprocess.STDOUT)  # 程序执行错误后输出的信息管道管道给 stout,相当于错误和正确的信息同时走同一根管道


while True:
    res = f.stdout.readline()
    if len(res) == 0:
        time.sleep(1)
    else:
        print(res.decode('gbk'),end="")
posted @ 2022-11-07 14:08  mmszxc  阅读(41)  评论(0)    收藏  举报