python commands包不支持windows环境与如何在windows下使用的简易方法

commands模块不支持windows环境,让我们来看看。

>>> import commands
>>> print commands.getoutput(‘dir‘)
‘{‘ 不是内部或外部命令,也不是可运行的程序
或批处理文件。
>>>

查看commands.getoutput的源代码:

def getoutput(cmd):
    """Return output (stdout or stderr) of executing cmd in a shell."""
    return getstatusoutput(cmd)[1]

这个函数调用的是commands.getstatusoutput()函数,那查看下commands.getstatusoutput的源代码

def getstatusoutput(cmd):
    """Return (status, output) of executing cmd in a shell."""
    import os
    pipe = os.popen(‘{ ‘ + cmd + ‘; } 2>&1‘, ‘r‘)
    text = pipe.read()
    sts = pipe.close()
    if sts is None: sts = 0
    if text[-1:] == ‘\n‘: text = text[:-1]
    return sts, text

从commands.getstatusoutput的代码可以看出,命令运行的时候改变成了‘{ ‘ + cmd + ‘; } 2>&1‘,这是在linux下运行的命令,windows不支持。
所以,commands模块不支持windows环境。

那如何让它支持windows环境呢?

我的建议:

1、新建一个模块,copy commands的内容到其中

2、将getstatusoutput函数下的 ‘{ ‘ + cmd + ‘; } 2>&1‘ 改为cmd

当然getstatushan函数仍然存在问题,如果要使用的话,请参考windows环境进行修改。

总结,以上是我的一点心得,如果存在问题,请联系我。

时间: 2024-08-05 23:11:04

python commands包不支持windows环境与如何在windows下使用的简易方法的相关文章

windows环境变量如何在cmd中打印

在windows的cmd下,用"set"命令可以得到全部的环境变量,如何想得到某个环境变量,直接这样"set path"就可以了. set不仅如何,还有其他功能,有机会再补充上来. windows环境变量如何在cmd中打印

Windows环境配置HTTP服务(Windows + Apache + Mysql + PHP)

1.安装WampServer 2.管理HTTP服务 任务图标绿色为正常启动状态 注意事项:1.检查网络是不是通的 ping 对方IP2.检查防火墙是否开启,如果开启将不能正常被访问3.检查访问权限 Allow from all4.确保端口没有被其它程序占用 3. 配置根目录: 网站根目录是Web服务器上存放网站程序的空间 3.1打开配置文件,控制台选择或者 wampserver安装目录下bin\apache\Apache2.2.21\conf\httpd.conf 3.2.设定根目录,查找并修改

windows环境下如何搭建Consul+Ocelot

# <center>Consul+Ocelot的服务网关与注册等功能的实现</center> 此文档主要提供给开发人员使用, 暂时仅实现服务注册.服务发现.负载均衡等功能, 更多功能需配合官方文档或第三方文档进行更细致化开发. ###`有兴趣可以了解一下` * #### Consul相关: * [Consul官网](https://www.consul.io/) * [Consul简介](https://blog.51cto.com/firephoenix/2131616) * [

windows环境下安装Python的Rtree包

python提供的一个第三方包Rtree包能够实现R树查询.删除.增添的各种操作.然而版主在windows环境 (win 10, python3.5)下安装Rtree包的时候出现了问题.直接在cmd中输入pip install Rtree后,会出现一下错误: Collecting Rtree  Using cached Rtree-0.8.2.tar.gz    Complete output from command python setup.py egg_info:    Traceback

从零开始Windows环境下安装python+tensorflow

从零开始Windows环境下安装python+tensorflow 2017年07月12日 02:30:47 qq_16257817 阅读数:29173 标签: windowspython机器学习tensorflowAnaconda 更多 个人分类: machine-learning 前言 安装环境 tensorflow Anaconda 安装步骤 1.安装Anaconda 2.安装tensorflow 3.测试是否安装成功 总结 前言 本文介绍在Windows平台下,使用Anoconda简单安

python MySQLdb在windows环境下的快速安装、问题解决方式

使用Python访问MySQL,需要一系列安装 Linux下MySQLdb安装见 Python MySQLdb在Linux下的快速安装 http://blog.csdn.net/wklken/article/details/7271019 ------------------------------------------------------------- 以下是windows环境下的: 1.      安装数据库mysql 下载地址:http://www.mysql.com/downloa

selenium + python + windows 环境搭建

主要参考虫师的文章,但他的文章里面有一些问题说得不是很详细,并且有些我遇到的问题他也没有说明,所以记录一下我遇到的问题. 下载python并安装,并配置环境变量. 下载的话,建议大家下载2.7的版本.地址是: https://www.python.org/download/releases/2.7.8/ ,并选择自己需要的版本,例如64的系统选择 Windows X86-64 MSI Installer (2.7.8) 安装就直接安装就行了.环境变量的配置也很方便,在path变量中添加pytho

Python的raw_input语句包含中文,在Windows环境CMD中显示乱码的解决方法

Python的raw_input语句中如果包含中文,在Windows环境CMD中执行时会显示乱码: 由于raw_input语句不支持unicode显示,在中文字符串前加u会报错: 解决办法: 在语句中进行强制的编码转换,格式如下: shuzi = raw_input (unicode('请输入日期:','utf-8').encode('gbk'))

linux和windows下安装python拓展包及requirement.txt安装类库

http://blog.csdn.net/pipisorry/article/details/39902327 python拓展包安装 直接安装拓展包默认路径: Unix(Linux)默认路径:/usr/local/lib/pythonX.Y/site-packagesWindows默认路径:C:\PythonXY\Lib\site-packages 測试和升级python拓展安装包pip 查看pip安装时相应的python版本号 which pip /d/python3.4.2/Scripts