精华内容
下载资源
问答
  • 目前我使用到的python中执行cmd的方式有三种使用os.system("cmd")该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码,高位为脚本的退出状态码,即脚本中“exit 1”的代码...

    目前我使用到的python中执行cmd的方式有三种

    使用os.system("cmd")

    该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码,高位为脚本的退出状态码,即脚本中“exit 1”的代码执行后,os.system函数返回值的高位数则是1,如果低位数是0的情况下,则函数的返回值是0×100,换算为10进制得到256。

    如果我们需要获得os.system的正确返回值,那使用位移运算可以还原返回值:

    >>> n = os.system(test.sh)

    >>> n >> 8

    >>> 3

    这是最简单的一种方法,特点是执行的时候程序会打出cmd在linux上执行的信息。使用前需要import os。

    os.system("ls") 仅仅在一个子终端运行系统命令, 而不能获取命令执行后的返回信息

    os.Popen

    这种调用方式是通过管道的方式来实现,函数返回一个file-like的对象,里面的内容是脚本输出的内容(可简单理解为echo输出的内容)。使用os.popen调用test.sh的情况:python调用Shell脚本,有两种方法:os.system(cmd)或os.popen(cmd),前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容。实际使用时视需求情况而选择。明显地,像调用”ls”这样的shell命令,应该使用popen的方法来获得内容

    popen(command [, mode='r' [, bufsize]]) -> pipe

    tmp = os.popen('ls *.py').readlines()

    subprocess.Popen

    现在大部分人都喜欢使用Popen。Popen方法不会打印出cmd在linux上执行的信息。的确,Popen非常强大,支持多种参数和模式。使用前需要from subprocess import Popen, PIPE。但是Popen函数有一个缺陷,就是它是一个阻塞的方法。如果运行cmd时产生的内容非常多,函数非常容易阻塞住。解决办法是不使用wait()方法,但是也不能获得执行的返回值了。

    Popen原型是:

    subprocess.Popen(args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False, shell=false)

    参数bufsize:指定缓冲。我到现在还不清楚这个参数的具体含义,望各个大牛指点。

    参数executable用于指定可执行程序。一般情况下我们通过args参数来设置所要运行的程序。如果将参数shell设为 True,executable将指定程序使用的shell。在windows平台下,默认的shell由COMSPEC环境变量来指定。

    参数stdin, stdout, stderr分别表示程序的标准输入、输出、错误句柄。他们可以是PIPE,文件描述符或文件对象,也可以设置为None,表示从父进程继承。

    参数preexec_fn只在Unix平台下有效,用于指定一个可执行对象(callable object),它将在子进程运行之前被调用。

    参数Close_sfs:在windows平台下,如果close_fds被设置为True,则新创建的子进程将不会继承父进程的输入、输出、错误管 道。我们不能将close_fds设置为True同时重定向子进程的标准输入、输出与错误(stdin, stdout, stderr)。

    如果参数shell设为true,程序将通过shell来执行。

    参数cwd用于设置子进程的当前目录。

    参数env是字典类型,用于指定子进程的环境变量。如果env = None,子进程的环境变量将从父进程中继承。

    参数Universal_newlines:不同操作系统下,文本的换行符是不一样的。如:windows下用'/r/n'表示换,而Linux下用 "/n'。如果将此参数设置为True,Python统一把这些换行符当作'/n'来处理。

    参数startupinfo与createionflags只在windows下用效,它们将被传递给底层的CreateProcess()函数,用 于设置子进程的一些属性,如:主窗口的外观,进程的优先级等等。

    subprocess.PIPE

    在创建Popen对象时,subprocess.PIPE可以初始化stdin, stdout或stderr参数,表示与子进程通信的标准流。

    subprocess.STDOUT

    创建Popen对象时,用于初始化stderr参数,表示将错误通过标准输出流输出。

    Popen的方法:

    Popen.poll()

    用于检查子进程是否已经结束。设置并返回returncode属性。

    Popen.wait()

    等待子进程结束。设置并返回returncode属性。

    Popen.communicate(input=None)

    与子进程进行交互。向stdin发送数据,或从stdout和stderr中读取数据。可选参数input指定发送到子进程的参数。 Communicate()返回一个元组:(stdoutdata, stderrdata)。注意:如果希望通过进程的stdin向其发送数据,在创建Popen对象的时候,参数stdin必须被设置为PIPE。同样,如 果希望从stdout和stderr获取数据,必须将stdout和stderr设置为PIPE。

    Popen.send_signal(signal)

    向子进程发送信号。

    Popen.terminate()

    停止(stop)子进程。在windows平台下,该方法将调用Windows API TerminateProcess()来结束子进程。

    Popen.kill()

    杀死子进程。

    Popen.stdin

    如果在创建Popen对象是,参数stdin被设置为PIPE,Popen.stdin将返回一个文件对象用于策子进程发送指令。否则返回None。

    Popen.stdout

    如果在创建Popen对象是,参数stdout被设置为PIPE,Popen.stdout将返回一个文件对象用于策子进程发送指令。否则返回 None。

    Popen.stderr

    如果在创建Popen对象是,参数stdout被设置为PIPE,Popen.stdout将返回一个文件对象用于策子进程发送指令。否则返回 None。

    Popen.pid

    获取子进程的进程ID。

    Popen.returncode

    获取进程的返回值。如果进程还没有结束,返回None。

    例子一枚

    p = Popen("cp -rf a/* b/", shell=True, stdout=PIPE, stderr=PIPE)

    p.wait()

    if p.returncode != 0:

    print "Error."

    return -1

    使用commands.getstatusoutput方法

    这个方法也不会打印出cmd在linux上执行的信息。这个方法唯一的优点是,它不是一个阻塞的方法。即没有Popen函数阻塞的问题。使用前需要import commands。

    比如

    status, output = commands.getstatusoutput("ls")

    还有只获得output和status的方法:

    commands.getoutput("ls")

    commands.getstatus("ls")

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    展开全文
  • python执行cmd命令

    千次阅读 2019-03-11 10:50:11
    #原本在cmd下执行的命令,添加到python函数中运行 subprocess . Popen ( cmd , shell = True ) #使用subprocess模块,将cmd下的命令使用这个模块执行 else : directory ( path ) print ( route + ...
    import os
    import subprocess
    import sys
    
    
    def directory(route):
        filename_list = os.listdir(route)        #获取指定目录下的所有文件名,以列表形式返回
        filecount = []
        for item in filename_list:
            path = os.path.join(route, item)      #将两个路径拼接成一个完整目录
            judge = os.path.isfile(path)          #判断一个文件是否是文件夹还是文件(文件夹的话返回false,文件的话是trueif judge:
                if item.split(".")[1] == "pug":
                    filecount.append(path)
                    cmd = "pug -P " + path + " -o " + sys.argv[2]   #原本在cmd下执行的命令,添加到python函数中运行
                    subprocess.Popen(cmd, shell=True)       #使用subprocess模块,将cmd下的命令使用这个模块执行
            else:
                directory(path)
        print(route + "目录下pug文件个数为:", len(filecount))
    
    
    directory(sys.argv[1])    #在cmd下运行此文件,后面的参数为自己输入的参数,sys.argv[1][2]是自己输入参数的第几位参数获取
    
    
    展开全文
  • python 执行cmd命令时,突然发现所有的命令一下子都执行了。 前面的命令还没有执行完成,后面的命令可能早就执行结束了。 为了实现:上一个命令结束之后再执行下一个命令,让cmd命令按顺序依次执行 p = ...

    python 执行cmd命令运行you-get下载多个文件时,突然发现所有的命令一下子都执行了。

    前面的命令还没有执行完成,后面的命令可能早就执行结束了。

    为了实现:上一个命令结束之后再执行下一个命令,让cmd命令按顺序依次执行

    try:
        subprocess.getoutput("you-get " + url)
        #os.popen("you-get "+url).read()
    except:
        pass

     

    因为下载内容会使得read() 抛出错误,所以添加异常处理。

    展开全文
  • Python通过cmd命令更新pip

    千次阅读 2019-04-01 11:08:13
    cmd命令行输入python -m pip install --upgrade pip

    cmd命令行输入:python -m pip install --upgrade pip

    展开全文
  • python实现调用cmd命令

    2017-04-13 13:12:02
    Python 执行cmd命令,实现命令行下的操作。简单易懂。可当做范例学习,扩展。
  • python 调用cmd命令的方法

    万次阅读 2018-04-18 10:07:17
    1、os.system('cmd')执行成功返回0,否则返回1,在执行的终端会输出执行结果,但是不能保存输出结果。2、commands.getstatusoutput('cmd')status ,output = commands.getstatusoutput('cmd')status = commands.get...
  • Python实现cmd命令连续执行

    千次阅读 2019-12-28 18:46:16
    之前是想写一个微信控制程序,通过...开始时,使用os.popen()执行命令,但是该命令需要手动修改运行目录。此方案被我直接丢弃了。 单开进程 那么自然想到通过启动进程的方式来实现,Python有对进程的封装subproc...
  • python调用cmd命令的三种方法

    千次阅读 2018-08-22 17:43:00
    参考博文: ...目前我使用到的python中执行cmd的方式有三种 使用os.system(“cmd”) 该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号...
  • python执行cmd命令的几种方法

    千次阅读 2019-07-14 18:43:44
    1、os.system(command) command是要执行的命令,该方法没有返回值,并且会...os.system('start python') 2、os.popen(command) command是要执行的命令,该方法不会阻塞程序,调用后立即返回一个TextIOWrapper对象,...
  • pythoncmd命令台从txt文件中读取文本,输出文本前有一个小框框。 解决方法:
  • 测试:python调用cmd命令三种方法

    千次阅读 2017-06-06 19:59:00
    目前我使用到的python中执行cmd的方式有三种 使用os.system("cmd") 该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码,高位为脚本的退出状态码,即脚本中“exit 1”的代码执行后,...
  • 问题根因: 操作系统是Windows,IDE是默认UTF-8编码的。 现在想通过cmd打开具有中文路径的文件,用os.system(command)打不开,返回的错误是乱码看不懂。 ...将你的命令也就是字符串编码成gb231...
  • 并且已配置好环境变量,win+R输入cmd,直接输入python提示不是内部或外部命令 解决方法:1、切换到python的exe安装路径下,执行python运行正常。 2、再重新打开一个命令窗口,输入python,依然提示python提示不是...
  • 但是进入到cmd命令窗口(同时按下win+r组合键后输入cmd进入),输入python命令提示“不是内部或外部命令”,遇到这种现象通常是没有将python的安装路径添加到环境变量中。在桌面上右键点击“此电脑”,选择“属性”...
  • python调用cmd命令的几种方式和区别

    千次阅读 2016-04-21 20:16:01
    os.system(cmd): 该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码,高位为脚本的 退出状态码,即脚本中“exit 1”的代码执行后,os.system函数返回值的高位数则是1,如果...
  • 最近想要自学python,没想到安装完之后第一步就出现了问题:在cmd命令窗口输入python,显示“不是内部或外部命令”。 看很多人都有这样的问题,所以今天,把各种情况和解答方法都总结一下。 一:没有将python的...
  • 在windows7平台下,python项目中使用os.system("xx.exe")执行应用程序,如果程序崩溃后,很可能会弹出“xx.exe已停止运行”的对话框,然后python脚本就阻塞在这里,在我们鼠标没有点击结束该应用之前,是没有办法...
  • 当刚刚安装好的python应用程序时,利用cmd命令查看python版本的时候往往会出现错误...系统变量找到自己的python安装的文件路径:这时,再重新打开cmd命令输入python,此时可查看自己的python版本命令。成功查看。...
  • cmd命令输入python -m pip install –upgrade pip没有反应的解决办法 今天,在安装python第三方库的时候,cmd命令行跳出来提示我更新一下pip。(因为每次安装第三方库的时候,都跳出来,嫌麻烦,我就打算更新一下...
  • 问题:终端输入python,显示如下错误。 解决该问题可采用如下步骤: (1)编辑并运行一个简单的helloworld程序。 (2)记录下地址C:\ProgramFiles (x86)\Microsoft Visual Studio\Shared\Python36_64 ...
  • python操作linux cmd命令

    千次阅读 2018-05-15 10:16:30
    我们在操作linux命令的时候,选择subprocess 看看他的api都能干些啥 subprocess.call(command) 可以用于执行一个外部命令,但该方法不能返回执行的结果,只能返回执行的状态码: 成功(0) 或 错误(非0) call()...
  • python远程控制windows cmd命令

    千次阅读 2020-03-05 16:25:47
    python远程控制windows cmd命令1. 被控制的远程windows开启winrm service 的基础配置2. 用python中的pywinrm库实现对远程windows的控制 1. 被控制的远程windows开启winrm service 的基础配置 在cmd中配置 winrm ...
  • python调用cmd进行输入输出

    千次阅读 2019-07-05 14:22:04
    由于程序需要用java和python混用,所以可以取巧,就是在python中调用cmd,在cmd中执行java 所以,进行了一下测试。完美运行 import os with open("text1.txt","w",encoding="utf8") as file1: mystr = os.popen(...
  • 场景: 看有些大神在命令提示符里输入两句命令就能执行一大串东西,本着学习的态度,先试试再说!没成想出现了:“不是内部或外部命令,也不是可运行的程序或批处理文件。” 通过各种查各种找,终于...
  • 1、快捷键win+r输入cmd回车调出cmd界面,在命令行输入python回车,显示python命令无法识别 2、登陆python官网https://www.python.org/,选择download页面进去找到python的一个版本下载安装,我用的是python3.4.2 ...
  • cmd进入python的方法如下1进入python打开cmd——>直接输入python即可,如下2退出python方法一:先按Ctrl+z,再按Enter(回车键)方法二:输入exit(),按回车方法三:输入quit(),按回车内容扩展:在windows cmd下...
  • 安装完成后打开cmd,输入python没有反应 解决办法: 再三确认环境变量没有问题,cd 到python的安装路径下,再输入python就好了 2.安装pip时输入命令:pip install pip 显示需要更新版本 输入python -m pi...
  • cmd python常用命令总结

    千次阅读 2018-10-25 15:03:22
    1,打开cmd windows键 + R ,输入 cmd 回车 ...输入命令 python hello.py 5,在cmd输入代码 6,退出python解释器环境,快捷键 ctrl+Z 注,>>> 表示在python解释器环境下...
  • python软件安装成功后,Windows+R运行cmd命令提示符,可是当输入phthon后,提示“python不是内部或外部命令,也不是客运行的程序或批处理文件”,也就命令提示符中并没有启动python程序。这是因为没有导入启动路径,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 77,714
精华内容 31,085
关键字:

python输入cmd命令

python 订阅