精华内容
下载资源
问答
  • Python 执行Shell命令

    2019-09-29 18:34:58
    Python 执行Shell命令 实际应用中可能需要在程序中执行一些shell命令,例如在Pycharm开发环境中...本文通过示例学习Python执行基本shell命令方法。 1. Python os.system() 函数 os.system()函数可以执行系统命令,官...

    Python 执行Shell命令

    实际应用中可能需要在程序中执行一些shell命令,例如在Pycharm开发环境中,提交代码至github。我们知道传输文件是通过git命令,其一般在命令行中执行,所以Pycharm后台通过执行shell进行实现。本文通过示例学习Python执行基本shell命令方法。

    1. Python os.system() 函数

    os.system()函数可以执行系统命令,官方文档描述如下:
    通过调用标准C函数system()实现,对应限制也一样。
    然而命令有任何输出,会发送至解释器标准输出流,因此不建议使用。
    下面示例获取git对应版本,使用命令git --version

    import os
    
    cmd = "git --version"
    
    returned_value = os.system(cmd)  # returns the exit code in unix
    print('returned value:', returned_value)
    
    

    下面输出是在安装了git的ubuntu上:

    git version 2.14.2
    returned value: 0
    

    注意我们没有将git版本命令输出打印到控制台,而是将其打印出来,因为控制台是这里的标准输出流,但实际输出没有获取到版本对应的值。

    2. Python subprocess.call() 函数

    前节中我们使用os.system()函数,本节我们看看subprocess模块的call函数执行系统命令。下面示例重写了上面的代码:

    import subprocess
    
    cmd = "git --version"
    
    returned_value = subprocess.call(cmd, shell=True)  # returns the exit code in unix
    print('returned value:', returned_value)
    
    

    执行后输出结果与上节示例一样。

    3. Python subprocess.check_output()函数

    我们看前面两个方法不能操作这些命令的执行输出结果。本节介绍subprocess.check_output()函数,其可以保存输出结果到变量中。请看示例:

    import subprocess
    
    cmd = "date"
    
    # returns output as byte string
    returned_output = subprocess.check_output(cmd)
    
    # using decode() function to convert byte string to string
    print('Current date is:', returned_output.decode("utf-8"))
    

    执行输出结果如下:

    Sun Sep 29 18:31:57 CST 2019
    

    4. 总结

    我们一共介绍了三种方式执行shell命令,但只有subprocess.check_output()函数可以获取输出结果。

    展开全文
  • Python执行Shell命令

    2014-10-31 14:22:37
    这里介绍一下python执行shell命令的四种方法: 1、os模块中的os.system()这个函数来执行shell命令 1 2 3 >>> os.system('ls') anaconda-ks.cfg  install.log install....

    这里介绍一下python执行shell命令的四种方法:

    1、os模块中的os.system()这个函数来执行shell命令

    1
    2
    3
    >>> os.system( 'ls' )
    anaconda - ks.cfg  install.log  install.log.syslog  send_sms_service.py  sms.py
    0

    注,这个方法得不到shell命令的输出。


    2、popen()#这个方法能得到命令执行后的结果是一个字符串,要自行处理才能得到想要的信息。

    1
    2
    3
    4
    5
    >>>  import  os
    >>>  str  =  os.popen( "ls" ).read()
    >>> a  =  str .split( "\n" )
    >>>  for  in  a:
             print  b

    这样得到的结果与第一个方法是一样的。

    3、commands模块#可以很方便的取得命令的输出(包括标准和错误输出)和执行状态位

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    import  commands
    a,b  =  commands.getstatusoutput( 'ls' )
    a是退出状态
    b是输出的结果。
    >>>  import  commands
    >>> a,b  =  commands.getstatusoutput( 'ls' )
    >>>  print  a
    0
    >>>  print  b
    anaconda - ks.cfg
    install.log
    install.log.syslog

    commands.getstatusoutput(cmd)返回(status,output)

    commands.getoutput(cmd)只返回输出结果

    commands.getstatus(file)返回ls -ld file 的执行结果字符串,调用了getoutput,不建议使用这个方法。


    4、subprocess模块


    使用subprocess模块可以创建新的进程,可以与新建进程的输入/输出/错误管道连通,并可以获得新建进程执行的返回状态。使用subprocess模块的目的是替代os.system()、os.popen*()、commands.*等旧的函数或模块。

    import subprocess

    1、subprocess.call(command, shell=True)

    #会直接打印出结果。

    2、subprocess.Popen(command, shell=True) 也可以是subprocess.Popen(command, stdout=subprocess.PIPE, shell=True) 这样就可以输出结果了。

    如果command不是一个可执行文件,shell=True是不可省略的。

    shell=True意思是shell下执行command


    这四种方法都可以执行shell命令。

    展开全文
  • 零、所用环境python 3.6一、利用OS1、有输出(执行命令后)"""pythonimport osos.system(command)"""例1:在python中通过you-get命令下载视频(直接打印执行结果)"""pythonimport osurl ='...

    零、所用环境

    python 3.6

    一、利用OS

    1、有输出(执行命令后)

    """python

    import os

    os.system(command)

    """

    例1:在python中通过you-get命令下载视频(直接打印执行结果)

    """python

    import os

    url ='https://www.bilibili.com/video/av40560268?from=search&seid=11275789902618123014'

    os.system("you-get '%s'" % (url,))

    """

    2、无输出/自定义输出(执行命令后)

    """python

    import os

    os.popen(command).read()

    """

    二、利用subprocess

    1、有输出(执行命令后)

    """

    import subprocess

    subprocess.call(command, shell=True)

    """

    注:同os.system

    2、无输出/自定义输出(执行命令后)

    """

    import subprocess

    subprocess.Popen(command, shell=True)

    # subprocess.Popen(command, stdout=subprocess.PIPE, shell=True)

    """

    注:同os.popen

    三、参考资料

    python学习——python中执行shell命令

    展开全文
  • python运行shell命令

    2019-10-24 20:32:11
    python运行系统(Linux)命令的四种做法 os.system 示例: cmd = 'ls -l' os.system(cmd) os.system会在命令行上显示具体的命令结果 os.popen 有时我们需要获取到具体的命令输出结果进行处理,而os.system很难...

    python运行系统(Linux)命令的四种做法

    os.system

    示例:

    cmd = 'ls -l'
    os.system(cmd)
    

    os.system会在命令行上显示具体的命令结果

    os.popen

    有时我们需要获取到具体的命令输出结果进行处理,而os.system很难做到这种情况,因此我们需要使用os.popen,
    示例:

    import os
    cmd = 'ls -l'
    result = os.popen(cmd)
    for o in result.readlines():
    	print o
    

    commands模块

    commands不仅可以获取命令的运行结果内容,还可以获取命令的结果状态。
    示例:

    import commands
    # 获取执行状态和执行结果
    the_status, the_output = commands.getstatusoutput('ls -l') # the_status为0表示运行成功,the_status不为0表示运行失败
    # 只获取执行结果
    the_output2 = commands.getoutput('ls -l')
    

    subprocess

    subprocess模块会创建新的进程用来执行命令,还可以编辑系统输入输出流实现与程序段的交互。

    示例:

    # 在shell运行,并且将运行结果返回给result,result为0表示执行成功,result不为0表示执行失败
    result = subprocess.call('ls -l aaabcdea.txt', shell=True)
    
    # 执行命令并且获取执行结果
    result = subprocess.Popen('ls -l', stdout=subprocess.PIPE, shell=True)
    # 输出执行结果
    print result.stdout.readlines()
    
    # 执行命令并且在输入流中输入相关信息完成命令的执行
    result = subprocess.Popen('python hello.py', stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
    result.stdin.write('hello world\n')
    print result.stdout.read()
    # 
    
    展开全文
  • python执行shell命令

    2019-04-26 09:35:12
    零、所用环境 python 3.6 一、利用OS 1、有输出(执行命令后) """python import os os.system(command) """ 例1:在python中通过you-get命令下载视频(直接打印执行结果) """python ...
  • 今天小编就为大家分享一篇python 执行shell命令并将结果保存的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Python 执行 shell 命令添加 sudo 密码

    千次阅读 2019-09-10 19:22:06
    Python 执行 shell 命令添加 sudo 密码 1. ping -c 4 www.baidu.com strong@foreverstrong:~$ ping -c 4 www.baidu.com PING www.a.shifen.com (61.135.169.121) 56(84) bytes of data. 64 bytes from 61.135.169....
  • 最近发现了一个 python 特有的卡死问题,是通过 python 调用 shell 命令出现的,特此记录一下。...1.2、python 调用 shell 命令执行: import osos.system("yesyes|echo 'hello'") 但在 python 中会卡死...
  • Python运行Shell命令

    千次阅读 2013-08-04 15:46:33
    程序功能也比较简单,就是在Python运行Shell命令,简单地说就是接收用户输入shell命令,然后运行shell命令,并将shell命令的输出结果显示给用户。说起简单,做起来也不容易,身为菜鸟的我也折腾了将近1天。...
  • python获取执行shell命令后返回值得几种方式: # 1.os模块 ret = os.popen(supervisorctl status) ret_data = ret.read() # 2.subprocess模块 ret = subprocess.Popen('supervisorctl status',shell=True,stdout=...
  • Python 执行 shell命令 的几个方法小结

    千次阅读 2018-07-18 19:33:39
    最近有个需求就是页面上执行shell命令,第一想到的就是os.system os.system('cat /proc/cpuinfo') 但是发现页面上打印的命令执行结果 0 或者 1,当然不满足需求了。 os.popen() 尝试第二种方案 os.popen() ...
  • python运行shell命令四种方法

    千次阅读 2014-07-05 09:43:52
    这里介绍一下python执行shell命令的四种方法: 1、os模块中的os.system()这个函数来执行shell命令 1 2 3 >>> os.system('ls') anaconda-ks.cfg  install.log install....
  • python执行shell命令的四种方法

    千次阅读 2015-08-25 15:17:39
    python执行shell命令的四种方法,如下: #!/usr/bin/env python # -*- coding: utf-8 -*- import os import platform import subprocess import commands def subproc(): print "系统进程数:" subprocess.call...
  • python 执行shell命令的类

    千次阅读 2017-09-26 20:58:55
    在写代码时,经常需要执行系统命令或shell命令,这时候有一个执行命令的类,是相当方便的,如下: 脚本名:runCMD.py # -*- coding: utf-8 -*- import subprocess import itertools,sys reload(sys) sys....
  • 【python】python执行shell命令或脚本

    万次阅读 2018-09-05 20:39:20
    其中最后一个0是这个命令的返回值,为0表示命令执行成功。使用system无法将执行的结果保存起来。 popen() 获取命令执行的结果,但是没有命令执行状态,这样可以将获取的结果保存起来放到list中。 ...
  • from subprocess import Popen... 执行 shell 命令并实时打印输出 :param command: shell 命令 :return: process, exitcode """ process = Popen(command, stdout=PIPE, stderr=STDOUT, shell=True) with process.
  • Python执行shell命令(并获取执行结果)

    千次阅读 2020-04-22 14:53:45
    执行shell语句 os.system(“xxx”) 可执行shell语句,执行会将结果打印至工作台 执行shell语句并获取结果 os.popen(“xxx”).readlines() 执行并获取全部的执行结果,获取结果为list,每行内容为list的一个值。...
  • python获取执行shell命令后返回值得几种方式:# 1.os模块 ret = os.popen("supervisorctl status") ret_data = ret.read() # 2.subprocess模块 ret = subprocess.Popen('supervisorctl sta...
  • 在终端保证了原汁原味的输出,同时再代码里也能获取到...p = subprocess.Popen(cmd,shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, encoding='utf-8') while p.poll() is None: line = p.stdout.rea
  • python 执行shell命令的方法

    千次阅读 2019-02-27 21:01:48
    1. import commands commands.getoutput("ls") os.system("ls") os.popen("ls")
  • os.system(command)类似c语言里的system函数,只能执行命令,无法获取输出,返回值跟c类似,将shell的返回值放到了8-15位 os.popen(command [, mode='r' [, bufsize]])也跟c语言类似,c语言返回的是一个文件流指针,...
  • from subprocess import Popen, PIPE p = Popen("cp -rf a/* b/", shell=True, stdout=PIPE, stderr=PIPE) p.wait() if/while p.returncode != 0: print "Error." return -1

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 132,719
精华内容 53,087
关键字:

python执行shell命令

python 订阅