• day19 正泽表达式,sys模块,打印进度条,subprocess模块


    # import sys
    
    # sys.path
    
    # sys.argv # 用来接收python解释器执行py文件后跟的参数
    #例如:python cp.py argv1 argv2 arg3
    #sys.argv=['cp.py','argv1','argv2','argv3']
    

    相关代码

    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 time
    
    def make_progress(percent,width=50):
        if percent > 1:percent=1
        show_str=('[%%-%ds]' % width) % (int(percent * width) * '#')
        print('
    %s %s%%' %(show_str,int(percent * 100)),end='')
    
    total_size=102511
    recv_size=0
    while recv_size < total_size:
        time.sleep(0.1) # 模拟经过了0.5的网络延迟下载了1024个字节
        recv_size+=1024
        # 调用打印进度条的功能去打印进度条
        percent=recv_size / total_size
        make_progress(percent)
    

    subprocess模块

    # import os
    # os.system('tasklist') #执行系统命令
    
    import subprocess#这个模块就用来执行系统命令
    import time#qq不是进程qq是程序,双击qq启动起来才叫启动一个进程
    
    obj=subprocess.Popen(  #这一步仅仅是生了一个儿子出来
        'tasklist',
        shell=True,#shell 就是命令解释器
        stdout=subprocess.PIPE,  #命令正确运行的结果
        stderr=subprocess.PIPE    #命令运行错误的结果  PIPE 进程与进程之间共享数据用的
    )
    time.sleep(10)
    # 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)
    

    subprocess模块

    #subprocess 模块
    import subprocess  #这个模块用来执行系统命令  subprocess子进程的意思
    import time
    obj=subprocess.Popen(
        'tasklist',
         shell=True,
         stdout=subprocess.PIPE,
         stderr=subprocess.PIPE
    )
    # print(obj)#得到一个内存地址
    # time.sleep(10)#可以看到进程  子进程结束  父进程在睡10秒
    #这一步代表生了个儿子出来
    #第一个参数必须是字符串形式的命令 第二个必须加shell=True   shell的意思是命令解释器 这一步其实在调命令解释器
    #stdout  代表命令正确运行的结果
    #stderr  代表命令错误运行的结果
    #管道其实就是进程与进程之间共享数据的地方
    #正确的命令从管道里面输给父进程,让父进程使用
    #错误的结果也往管道里面丢 这样取得时候就有针对性
    stdout_res=obj.stdout.read()#从正确管道读结果
    print(stdout_res.decode('gbk'))#bytes类型
    
    #总结
    
    #subprocess模块的应用
    
  • 相关阅读:
    unity, 调节图片导入尺寸
    photoshop, 钢笔上色
    maxscript, 批量导出物体
    unity, readOnly varible
    通过Maven找java source源码方法
    Nginx技巧:灵活的server_name,Nginx配置一个服务器多个站点 和 一个站点多个二级域名
    设置局域网共享文件不需要用户名密码
    SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
    利用nginx泛域名解析配置二级域名和多域名
    三分钟了解Activity工作流
  • 原文地址:https://www.cnblogs.com/wangmiaolu/p/9224995.html
Copyright © 2020-2023  润新知