• Python


    python操作cmd

    我们通常可以使用os模块的命令进行执行cmd

    方法一:os.system

    os.system(执行的命令)
    # 源码
    def system(*args, **kwargs): # real signature unknown
        """ Execute the command in a subshell. """
        pass

    方法二:os.popen(执行的命令)

    os.popen(执行的命令)
    
    # 源码
    def popen(cmd, mode="r", buffering=-1):
        if not isinstance(cmd, str):
            raise TypeError("invalid cmd type (%s, expected string)" % type(cmd))
        if mode not in ("r", "w"):
            raise ValueError("invalid mode %r" % mode)
        if buffering == 0 or buffering is None:
            raise ValueError("popen() does not support unbuffered streams")
        import subprocess, io
        if mode == "r":
            proc = subprocess.Popen(cmd,
                                    shell=True,
                                    stdout=subprocess.PIPE,
                                    bufsize=buffering)
            return _wrap_close(io.TextIOWrapper(proc.stdout), proc)
        else:
            proc = subprocess.Popen(cmd,
                                    shell=True,
                                    stdin=subprocess.PIPE,
                                    bufsize=buffering)
            return _wrap_close(io.TextIOWrapper(proc.stdin), proc)

    两者区别

    • system只把能输入的内容给返回回来了,其中代码 0 表示执行成功。但是我们没有办法获取输出的信息内容
    • popen可以获取输出的信息内容,它是一个对象,可以通过 .read() 去读取
  • 相关阅读:
    js基础整理总结
    pyinstaller打包django项目成exe以及遇到的一些问题
    Django对接SQL Server服务
    死锁
    python 之路
    Python注释
    Django2.1迁移数据库出错
    一行 Python 代码实现并行
    【转载】Python 类定义与对象
    关于盒模型布局在UC上的兼容处理
  • 原文地址:https://www.cnblogs.com/poloyy/p/12641547.html
Copyright © 2020-2023  润新知