zoukankan      html  css  js  c++  java
  • 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模块的应用
    
  • 相关阅读:
    海量文件查重SimHash和Minhash
    刷题中熟悉Shell命令之Tenth Line和Transpose File [leetcode]
    C# 开发XML Web Service与Java开发WebService
    Sketchup+ArcGIS三维建模与管理
    入门-Arcmap网络分析示例
    建议入门-用ArcMap进行空间查询与空间连接
    (转载)Htmlparser Filter 简要归纳
    (转载)java常见的ClassNotFoundException
    C# WinForm程序向datagridview里添加数据
    oracle数据库的简单操作
  • 原文地址:https://www.cnblogs.com/wangmiaolu/p/9224995.html
Copyright © 2011-2022 走看看