• Python之subprocess模块、sys模块


    一、subprocess模块

    # import os
    # os.system('tasklist')       #类似cmd输入系统命令
    
    '''
    subprocess的目的就是启动一个新的进程并且与之通信。
    subprocess模块中只定义了一个类: Popen。可以使用Popen来创建进程,并与进程进行复杂的交互。'''
    import subprocess             #可以替代os.system
    import time
    #stdout命令正确输出结果,PIPE进程与进程之间共享的管道,shell=True代表调用命令解释器
    obj=subprocess.Popen(
        'taskliasdfsadfst',             #可以输入系统命令
        shell=True,
        stdout=subprocess.PIPE,         #如输入tasklist
        stderr=subprocess.PIPE          #如输入taskliasdfsadfst
    
    )
    # print(obj)
    stdout_res=obj.stdout.read()      #从儿子将正确的结果放到管道中,父亲等儿子将正确的结果放入管道,父亲从正确的管道读结果
    print(stdout_res.decode('gbk'))   ##windows默认的是gbk编码的,所以解码也要用gbk
    print(stdout_res)
    
    # stderr_res1=obj.stderr.read()              #
    # stderr_res2=obj.stderr.read()
    # stderr_res3=obj.stderr.read()
    # print(stderr_res1.decode('gbk'))          #windows默认的是gbk编码的,所以解码也要用gbk
    # 打印结果:'taskliasdfsadfst' 不是内部或外部命令,也不是可运行的程序
    # 或批处理文件。
    
    # print(stderr_res1)                          #第一次从管道中取走,后面再取则为空
    # print(stderr_res2)
    # print(stderr_res3)
    
    # import time
    # time.sleep(50)

    二、sys模块

    import sys
    
    # sys.path:获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。
    # sys.argv # 用来接收python解释器执行py文件后跟的参数
    #例如:python cp.py argv1 argv2 arg3
    #sys.argv=['cp.py','argv1','argv2','argv3']
    
    import sys
    print(sys.argv[0])
    print(sys.argv[1])
    
    
    
    
    
    # sys.argv           命令行参数List,第一个元素是程序本身路径
    # sys.exit(n)        退出程序,正常退出时exit(0)
    # sys.version        获取Python解释程序的版本信息
    # sys.maxint         最大的Int值
    # sys.path           返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
    # sys.platform       返回操作系统平台名称

    sys实现文件的拷贝

    '''执行文件:cp.py'''
    import sys
    print(sys.argv)------------[]
    # src_file=input('请输入源文件路径:')
    src_file=sys.argv[1]           #通过cmd拿到源文件路径
    # dst_file=input('请输入目标文件路径:')
    dst_file=sys.argv[2]           #通过cmd拿到目标件路径
    with open(src_file,'rb') as read_f,
        open(dst_file,'wb') as write_f:
        for line in read_f:
            write_f.write(line)

    cmd运行内容:

  • 相关阅读:
    vi 批量加注释与替换
    linux常用快捷键
    kubectl常用命令
    软件管理方法
    zabbix3.2升级3.4报错Database error
    zabbix显示中文乱码
    主从复制延迟及原因
    Python-- 文件与操作系统
    层次聚类
    盲源分离
  • 原文地址:https://www.cnblogs.com/sui776265233/p/9210702.html
Copyright © 2020-2023  润新知