python commands包不支持windows环境与如何在windows下使用的简易方法
2015-02-13 16:45
1156 查看
commands模块不支持windows环境,让我们来看看。
查看commands.getoutput的源代码:
这个函数调用的是commands.getstatusoutput()函数,那查看下commands.getstatusoutput的源代码
从commands.getstatusoutput的代码可以看出,命令运行的时候改变成了'{ ' + cmd + '; } 2>&1',这是在linux下运行的命令,windows不支持。
所以,commands模块不支持windows环境。
那如何让它支持windows环境呢?
我的建议:
1、新建一个模块,copy commands的内容到其中
2、将getstatusoutput函数下的 '{ ' + cmd + '; } 2>&1' 改为cmd
当然getstatushan函数仍然存在问题,如果要使用的话,请参考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环境进行修改。
总结,以上是我的一点心得,如果存在问题,请联系我。
相关文章推荐
- windows 环境下如何使用virtualenv python环境管理工具
- 转:windows下使用gvim搭建简单的IDE编译环境(支持C/C++/Python等)
- 【转帖】windows下使用gvim搭建简单的IDE编译环境(支持C/C++/Python等)
- 使用Sublime Text 开发Python如何配置环境(windows 7)
- windows下使用gvim搭建简单的IDE编译环境(支持C/C++/Python等)
- [C++/Python] 如何在Python中使用一个DLL? (Windows环境)
- 如何将Anaconda更新到想要的python版本(其实使用的是Anaconda中的切换不同环境的方法,不过步骤挺好)
- Windows系统下使用flup搭建Nginx和Python环境的方法
- windows下使用gvim搭建简单的IDE编译环境(支持C/C++/Python等)
- Windows下使用VS2008编译OpenCV 2.1 添加Intel TBB和Python支持
- Lua For Windows 环境配置及使sciTE支持中文,使用editplus作为编辑工具
- Windows下PHP简易环境搭建(WampServer安装使用)
- 在windows开发环境中,java代码中使用linux格式路径的方法需要注意的问题
- 如何在 Windows 恢复环境中使用 Bootrec.exe 工具解决和修复 Windows Vista 中的启动问题
- GSL 安装使用方法 MinGW 、 VC、Borland C++ Builder、Windows开发环境下的使用
- 有关Windows和Linux双系统环境如何正确卸载Linux系统的方法总结
- objective-c中对象所有权的内存管理(关于set,get方法),以及如何使用@property来进行简易操作(九)
- objective-c中对象所有权的内存管理(关于set,get方法),以及如何使用@property来进行简易操作(九)
- 如何在企业环境中使用 Windows 部署服务 部署 Windows XP(实验手册)