zoukankan      html  css  js  c++  java
  • python之sys模块和subprocess模块

    # sys.path                                  # 可以把文件路径加入到环境变量

                                                        返回模块的搜索路径

     返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值


    # sys.argv                                 # 用来接收python解释器执行py文件后跟的参数



     

    #例如:python cp.py argv1 argv2 arg3              # python解释器运行

    #sys.argv=['cp.py','argv1','argv2','argv3']            #专门接受python解释器脚本后面的参数

    直接调用就可以

    import sys

    # print(sys.argv)
    # src_file=input('请输入源文件路径:')
    src_file=sys.argv[1]
    # dst_file=input('请输入目标文件路径:')
    dst_file=sys.argv[2]
    with open(src_file,'rb') as read_f,
        open(dst_file,'wb') as write_f:
        for line in read_f:
            write_f.write(line)

    进度条的打印:

    #=========实现打印进度条函数==========
    import sys
    import time
    
    def progress(percent,width=50):
        if percent >= 1:
            percent=1
        show_str=('[%%-%ds]' %width) %(int(width*percent)*'#')
        print('
    %s %d%%' %(show_str,int(100*percent)),file=sys.stdout,flush=True,end='')
    
    
    #=========应用==========
    data_size=1025
    recv_size=0
    while recv_size < data_size:
        time.sleep(0.1) #模拟数据的传输延迟
        recv_size+=1024 #每次收1024
    
        percent=recv_size/data_size #接收的比例
        progress(percent,width=70) #进度条的宽度70

    # import os
    # os.system('tasklist')           


    import subprocess                      #用于执行系统命令,并拿到结果
    import time

    格式:
    obj=subprocess.Popen(            
        'taskliasdfsadfst',                   命令
        shell=True,                           #必须
        stdout=subprocess.PIPE,       管道,执行成功通过管道传输出去
        stderr=subprocess.PIPE          管道,错误信息通过管道传输  


    )
    # print(obj)
    # stdout_res=obj.stdout.read()                      
    # print(stdout_res.decode('gbk'))    命令的结果是二进制的,需要通过解码显示
    # print(stdout_res)


    stderr_res1=obj.stderr.read()            结果取完一次就没有了
    stderr_res2=obj.stderr.read()
    stderr_res3=obj.stderr.read()
    # print(stderr_res1.decode('gbk'))
    print(stderr_res1)
    print(stderr_res2)
    print(stderr_res3)


    # import time
    # time.sleep(50)

  • 相关阅读:
    第三方驱动备份与还原
    Greenplum 解决 gpstop -u 指令报错
    yum安装(卸载)本地rpm包的方法(卸载本地安装的greenplum 5.19.rpm)
    Java JUC(java.util.concurrent工具包)
    netty 详解(八)基于 Netty 模拟实现 RPC
    netty 详解(七)netty 自定义协议解决 TCP 粘包和拆包
    netty 详解(六)netty 自定义编码解码器
    netty 详解(五)netty 使用 protobuf 序列化
    netty 详解(四)netty 开发 WebSocket 长连接程序
    netty 详解(三)netty 心跳检测机制案例
  • 原文地址:https://www.cnblogs.com/Marcki/p/10111953.html
Copyright © 2011-2022 走看看