• 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模块的应用
    
  • 相关阅读:
    Inside Dynamics Axapta源代码赏析(五)
    Inside Dynamics Axapta源代码赏析(二)
    PHP查询显示关键字为红色
    textarea自适应高度
    背景图只显示一次,不循环,另外还有一个是PHP下的换行显示
    PHP格式化时间,形如(Wed 30,Jul 2008)
    实现页面加载中。。
    c++关于设置精度
    HDOJ 2662
    live Messenger
  • 原文地址:https://www.cnblogs.com/wangmiaolu/p/9224995.html
Copyright © 2020-2023  润新知