python中,通过命令行方式执行命令,如何才能得到返回的错误信息?

作者&投稿:氐季 (若有异议请与网页底部的电邮联系)
python中,执行命令的方法有哪些?~

1. os.system()
这个方法直接调用标准C的system()函数,仅仅在一个子终端运行系统命令,而不能获取执行返回的信息。
2. os.popen()
这个方法执行命令并返回执行后的信息对象,是通过一个管道文件将结果返回。
3. commands模块
注意1:在类unix的系统下使用此方法返回的返回值(status)与脚本或命令执行之后的返回值不等,这是因为调用了os.wait()的缘故,具体原因就得去了解下系统wait()的实现了。需要正确的返回值(status),只需要对返回值进行右移8位操作就可以了。
注意2:当执行命令的参数或者返回中包含了中文文字,那么建议使用subprocess。
4. subprocess模块
该模块是一个功能强大的子进程管理模块,是替换os.system, os.spawn*等方法的一个模块。

# -*- coding:utf-8 -*-__author__ = 'lpe234'__date__ = '2014-12-29'from subprocess import Popen, PIPEresp = Popen('ls -l', stdout=PIPE)print resp.stdout.read()输出:
C:\Python27\python.exe D:/11/cs_test/test/ping_ip.pytotal 49-rw-r--r-- 1 LENOVO Administ 345 Nov 2 03:06 Student.py-rw-r--r-- 1 LENOVO Administ 77312 Nov 2 02:08 ex.xls-rw-r--r-- 1 LENOVO Administ 353 Nov 20 22:58 for_4.py-rw-r--r-- 1 LENOVO Administ 2153 Oct 25 19:08 order.py-rw-r--r-- 1 LENOVO Administ 176 Dec 29 22:43 ping_ip.py-rw-r--r-- 1 LENOVO Administ 9976 Nov 2 12:49 s.txt-rw-r--r-- 1 LENOVO Administ 1448 Sep 21 20:33 szsy.py-rw-r--r-- 1 LENOVO Administ 796 Sep 21 21:19 szsy_2.py-rw-r--r-- 1 LENOVO Administ 2269 Nov 2 12:49 xls.pyProcess finished with exit code 0

刚查了Python的文档说,要用更强大的命令行工具,最好使用subprocess。所以也许你应该好好看看subprocess模块:http://docs.python.org/3/library/subprocess.html#module-subprocess。这里面有很多函数,包括popen,当然是subprocess下面的。

另外,这里有个和你类似的问题:http://stackoverflow.com/questions/8592762/python-os-system-without-return-or-error,你可以去看下,摘抄其使用subprocess的程序如下:

import subprocess

# New process, connected to the Python interpreter through pipes:
prog = subprocess.Popen('ls', stdout=subprocess.PIPE, stderr=subprocess.PIPE)
prog.communicate()  # Returns (stdoutdata, stderrdata): stdout and stderr are ignored, here
if prog.returncode:
    raise Exception('program returned error code {0}'.format(prog.returncode))


可以试试用管道


在python中,可以通过super()函数调用父类的方法。
那么在Dog类中,如果想要调用这个“speak”方法,就可以通过super.speak来实现。这样,当调用Dog类的“speak”方法时,首先会执行父类Animal中的“speak”方法,然后Dog类可以添加自己的操作或者逻辑。总的来说,super函数在Python面向对象编程中是一个强大的工具,它允许子...

Python 通过()判断操作是否在分支语句中。
【答案】:答案:A 解析:python通过缩进来判断操作是否在分支结构中,Python中的缩进决议了代码的作用域范畴。

切片 是什么意思?
切片,是一个常用的编程术语,通常指从数据集合(如数组或列表)中取出一个固定数量的元素,形成一个新的数据集合。在Python中,通过使用切片语法,可以方便地截取列表或字符串的子集,获取特定数据。例如,对于一个包含10个元素的列表,如果我们需要取出前5个元素,可以使用list[:5]来实现。切片操作可以...

Python+语言可以通过索引来访问序列中的元素是正确的嘛?
是的,Python语言可以通过索引来访问序列中的元素。序列是一种基本的数据类型,包括列表、元组和字符串等。通过索引可以访问序列中的单个元素,索引从0开始递增。例如,访问列表中第一个元素可以使用索引0,访问第二个元素可以使用索引1,以此类推。例如:Copy code my_list = ['apple&...

with语句通过什么技术管理python中的资源
with语句通过上下文管理器来管理Python中的资源。上下文管理器是一个实现了特定方法的Python对象,用于在进入和退出某个代码块时执行特定的操作。这些操作通常涉及到资源的分配和释放,如打开和关闭文件,或者建立和断开数据库连接等。通过上下文管理器,Python可以确保即使在代码块执行过程中出现异常,资源也能...

python语句中通过什么区分循环体内部和外部?
通过缩进来区分哦

key=str是什么意思?
在Python中,通过使用字典(dictionary)来实现键值对的存储。键值对中的“key”是指在字典中作为索引使用的对象,而“value”则是一个与键相关联的对象。在Python中,当我们通过指定key来访问value时,我们必须使用key=str来指定key的数据类型是字符串。在Python中,只要键是可哈希的(即不可变的),...

在python中,怎么可以通过一个字符串获得其所在行的所有信息呢?_百度...
简单的这种查找即用“in”指令就可以。例如你要搜索的是一个文本,那么可以用readlin()逐行读取文本 然后对每一个line进行判断:if 'think' in line:print(line)当然,如果进行更复杂的匹配就要用正则表达式了 如果不会的话可以去网上找找教程,我没法给你说,因为光正则表达式本身的教程就是可以出一...

在python中获取用户输入通过一个特殊的表达式来实现称为什
在python中获取用户输入通过一个特殊的表达式来实现称为input。input()只能接受数字的输入,返回输入的数字类型(int,float)在Python中,点击运行代码后,程序会输入想要的信息并使用input函数来实现。当程序执行到input时,会处于冻结状态。

Python程序是依靠代码块的缩进来体现代码之间的逻辑关系,默认以___个...
1、Python是通过代码语句的缩进来体现逻辑关系的。代码块的开始和结束语句拥有相同的缩进量。2、JavaScript:JavaScript是Web开发中的核心语言,用于制作动态网站和交互式应用。如果您对Web开发感兴趣,学习JavaScript是非常有价值的。推荐使用的IDE包括VisualStudioCode和SublimeText。3、python使用行缩进代表代码...

辽中县13144977557: 如何在命令行里运行python脚本 -
宗政狮谓你: 如果你的环境变量中有python,直接在cmd中输入python即可进入python的命令行运行,如果要运行脚本,直接在cmd中输入python ***.py;如果没有设置环境变量,那就先设置.

辽中县13144977557: 怎么在命令提示符中运行python程序 -
宗政狮谓你: 在命令提示符中运行python程序的方法是:1、右键点击【我的电脑】,依次点击【属性】、【高级系统设置】、【环境变量】;2、将python的安装路径添加到PATH变量中;3、打开命令提示符,执行【python 文件路径】命令即可.具体方法: (推荐教程:Python入门教程) 一、配置环境变量 1、右键点击我的电脑,依次点击属性、高级系统设置、高级、环境变量; 2、在系统变量中找到Path,双击进行添加,选择新建,输入python的安装路径,例如我的安装路径是C:Program FilesAnaconda3python 二、运行python程序 1、打开命令提示符2、执行命令“python python文件路径”即可

辽中县13144977557: Python中调用命令行的几种方法 -
宗政狮谓你: 1.直接用python f:/python/xxx.py这样来运行2.用开发工具,如楼上说的eclipse+pydev,还有editplus,VIM这些都可以设置的.

辽中县13144977557: python执行命令行 -
宗政狮谓你: 上面是shell命令执行,换成python就搞个os.system('shell命令')就行啦..

辽中县13144977557: python中,执行命令的方法有哪些? -
宗政狮谓你: 1. os.system() 这个方法直接调用标准C的system()函数,仅仅在一个子终端运行系统命令,而不能获取执行返回的信息. 2. os.popen() 这个方法执行命令并返回执行后的信息对象,是通过一个管道文件将结果返回. 3. commands模块 ...

辽中县13144977557: Python中执行系统命令常见的几种方法 -
宗政狮谓你: (1)os.system# 仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息# 如果再命令行下执行,结果直接打印出来例如:import osos.system('ls') chk_err_log.py CmdTool.log install_log.txt install_zabbix.sh manage_deploy.sh ...

辽中县13144977557: python如何使用gitbash执行git命令 -
宗政狮谓你: 代码如下:#!/usr/bin/env python# -*- coding: utf-8 -*-# @name : find_t.py# @author : cat# @date : 2017/8/2.import osimport timedef bash_shell(bash_command):""" python 中执行 bash 命令 :param bash_command::return: bash 命令执行后...

辽中县13144977557: 如何在命令行里运行python脚本 -
宗政狮谓你: [root@localhost ~]# whereis python python: /usr/bin/python2.6-config /usr/bin/python /usr/bin/python2.6 /usr/lib/python2.6 /usr/lib64/python2.6 /usr/local/bin/python2.7-config /usr/local/bin/python /usr/local/bin/python2.7 /usr/local/lib/python2.7 /usr/...

辽中县13144977557: 命令行模式和Python交互模式有什么区别 -
宗政狮谓你: 命令行模式是直接在命令行窗口中运行python的py文件,需要先用文本编辑器编写代码,再通过命令行模式运行.交互模式是执行一行就返回一行代码的结果. 1、首先编写一个py文件,然后打开cmd,输入“python 文件路径”就可以执行这个py文件.如下图输入的是“python 1.py”.这种就是命令行模式 2、如果要进入交互模式,依然是打开cmd窗口或者在之前的cmd窗口继续操作,在窗口中输入python就进入交互模式了 3、这个时候可以一行一行输入python代码或者进行python运算,比如输入4+5,按回车后马上返回9的结果

辽中县13144977557: 如何运行Python程序的方法 -
宗政狮谓你: 1. 使用Python自带的IDLE 在开始-->程序-->Python2.5(视你安装的版本而不同)中找到IDLE(Python GUI), 点击后弹出如下窗体: 在>>>提示符后输入代码,回车,就可以执行此代码. IDLE支持语法高亮,支持自动缩进,支持方法提示,不过...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网