文档章节

Windows环境下使用python的commands.getstatusoutput

perofu
 perofu
发布于 2018/11/22 14:18
字数 394
阅读 223
收藏 0

    windows调用系统或其他脚本的,常用的是os.popen,次命令本身并不返回执行后的状态,无法用于后续的判断,故尝试Unix下的commands.getstatusoutput,发现在windows下并不能正常使用,如下:

>>> import commands
>>> status, output = commands.getstatusoutput('dir')
>>>
>>> import commands
>>> print output
'{' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
>>>
>>> status, output = commands.getstatusoutput(dir)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\commands.py", line 59, in getstatusoutput
    pipe = os.popen('{ ' + cmd + '; } 2>&1', 'r')
TypeError: cannot concatenate 'str' and 'builtin_function_or_method' objects

    发现commands调用了os.popen,备份原文件,稍作修改,结果如下:

#pipe = os.popen('{ ' + cmd + '; } 2>&1', 'r')

pipe = os.popen(cmd, 'r')

    删除原有的commands.pyc,再试下,即可。

>>> import commands
>>>
>>> status, output = commands.getstatusoutput('dir')
>>>
>>> print output
 驱动器 C 中的卷是 Win 7 Pro x64

 C:\Users\perofu 的目录

2018/10/17  15:08    <DIR>          .
2018/10/17  15:08    <DIR>          ..
2018/05/25  14:59    <DIR>          Contacts
2018/11/22  10:45    <DIR>          Desktop
2018/11/13  10:31    <DIR>          Documents
2018/11/22  10:24    <DIR>          Downloads
2018/10/12  11:28    <DIR>          Favorites
2018/10/08  09:43    <DIR>          Links
2018/10/17  14:56    <DIR>          Music
2018/11/08  11:06    <DIR>          Pictures
2018/05/25  14:59    <DIR>          Saved Games
2018/08/03  17:35    <DIR>          Searches
2018/11/22  13:55    <DIR>          Videos
               1 个文件              5 字节
              14 个目录 94,719,250,432 可用字节
>>>
>>>
>>> print status
0
>>>
>>> status, output = commands.getstatusoutput('aaaaa')
>>>
>>> print status
1
>>> print output

>>>

    仅作为记录。

© 著作权归作者所有

共有 人打赏支持
perofu
粉丝 128
博文 155
码字总数 131715
作品 0
广州
系统管理员
私信 提问
python 命令执行的方法整理

在python开发中,我们常常需要执行命令,修改相关信息。那对于初学者来说,python中如何执行命令呢?今天,小编就为大家分享3种python命令执行的方法。 1. 使用os.system("cmd") 在python中,...

小麦麦子
2015/06/24
1K
0
Python调用Ant构建时根据构建状态来决定命令行退出状态

在使用python执行Ant构建时遇到的问题: 使用os.system()调用Ant构建时,不论构建成功还是失败(BUILD SUCCESSFUL/BUILD FAILED),命令行的总是正常退出 要解决问题: 首先想到的是获取ant...

donhui
2015/04/16
0
0
python调用shell命令

python调用shell命令 1.1 os.system(command) 在一个子shell中运行command命令,并返回command命令执行完毕后的退出状态。这实际上是使用C标准库函数system()实现的。这个函数在执行command...

狷狂
2014/08/11
0
0
Python执行系统命令的方法 os.system(),os.popen(),commands

最近在做那个测试框架的时候发现 Python 的另一个获得系统执行命令的返回值和输出的类。 最开始的时候用 Python 学会了 os.system() 这个方法是很多比如 C,Perl 相似的。 但是这样是无法获得...

renwofei423
2011/05/27
0
0
Python主进程hang住的两个原因

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/feilengcui008/article/details/52831354 最近使用Python遇到两个非常不好定位的问题,表现都是Python主进程h...

feilengcui008
2016/10/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Scala实战:迁移文件

Scala作为script使用也是非常的方便。 原文地址:https://www.yangbajing.me/2019/03/22/scala实战:迁移文件/ 前因 最近因为线上文件越来越多,导致磁盘不够用。需要将磁盘上数据迁移到一块...

羊八井
24分钟前
0
0
vagrant

安装virtualbox、vagrant,重启电脑 创建目录vagrant_ubuntu1804,进入目录后 vagrant box add http://mirrors.ustc.edu.cn/ubuntu-cloud-images/bionic/20190312.1/bionic-server-cloudimg-......

chuqq
35分钟前
0
0
Java 多线程测试 笔记(一)

测试 没有Synchronized的并发 结果 用比较实际的方式测试,比如说卖东西,赚钱 public class Sell implements Runnable { static Sell sell = new Sell(); //商品总数 sta...

_大侠__
35分钟前
0
0
《大话数据结构》读后总结(四)

一、算法 1、算法效率的度量方法 1.1 事后统计方法 通过设计好的测试程序和数据,利用计算机计时器对不同算法编制的程序的运行时间进行比较,从而确定算法效率的高低。该方法具有很大缺陷,不...

徐曙辉
59分钟前
3
0
Android 整体设计及背后意义

阿里妹导读:现实工作中经常可以听到这样的说法:框架的升级带来协议性能的提升、编程模式的变革带来业务的飞跃...... 姑且不论这些表述是否有问题,实际上如果系统地看待事物整体,可能会有...

阿里云云栖社区
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部