易截截图软件、单文件、免安装、纯绿色、仅160KB

Python modules : os, subprocess and commands

1. What’s the difference between all of the os.popen() methods?
popen2 doesn't capture standard error, popen3 does capture standard
error and gives a unique file handle for it. Finally, popen4 captures
standard error but includes it in the same file object as standard
output.
os.popen()   -> stdout
os.popen2() -> (stdin, stdout)
os.popen3() -> (stdin, stdout, stderr)
os.popen4() -> (stdin, stdout_and_stderr)
2. os.popen() vs os.system()
from what I've deciphered, the only differences between os.popen() and os.system() are
a) popen automatically starts a new process while system only does it if you include an &
b) popen hooks onto stdout and stdin.
If so, what's the use of os.system()???
a) is not true. Under Unix both start a new process.
The important difference (as I understand it) is popen lets you interact with the program by reading and writing pipes while it's running. system() is more of a batch mode thing, the program runs to completion, then you get the return status.
>??? If so, what's the use of os.system()?
If you just want to run a shell command and don't need to provide any stdin and don't care about stdout/stderr.
For example, if you just want to copy a directory tree from one place to another:
status = os.system("cp -r srcdir /some/where/else")
If you want to start a program, send it input and/or watch its output as it runs, then use popen().
os.system is a standard call to the C standard function call system().
It doesn't allow you to catch the output of the program like os.popendoes.
os.popen is piped open so that you can capture in your python scripts what the program outputs.
os.system simply calls the outside program and sends it's contents to stdout which can be
redirected to a file in your shell.
Call os.system if your python program doesn't need to capture anything from your outside program.


相关文档:

Python 练习3 定义类,类方法,实例方法

设计一个IP类:
设计1 要求:初始化时给定ip地址并判断ip地址的合法性
            类方法:判断ip地址合法性
            实例方法:将ip地址转化为10进制的表示形式及16进制的表示形式
   ......

转段Python代码

#==================================================
import wx
import wx.media

class MyFrame(wx.Frame):
def __init__(self,parent,title):
wx.Frame.__init__(self,parent,-1,title,pos=(150,150),size&;nbsp;=(640, 480),style=wx.MAXIMIZE_BOX|wx.SYSTEM_MENU|wx.CAPTION|wx.CLOSE_BOX| ......

vim python 的path环境变量

以前也写过一些关于 vim 环境变量的内容,使用 vim 和 python ,每一段时间后都会有新的体会,所以要不断总结了.
vim 针对 python 的万能补全: vim 当前进程需要找到相应补全模块库所在位置,此是就和 python 的path环境变量相关。
python 代码运行时: 对于import 的模块也需要确定它的具体位置,python 解释器会到当前路 ......

python访问 sql server

今天试验使用python连接 sql server 服务器。我记得以前使用ado连接access非常顺利,但是今天使用ado连接sql server竟然不成功。在python里面的出错信息都显示为转移序列,费了半天劲才搞明白:无效的类别字符串。
是连接字符串吗?测试了好几个 确认无误的数据库连接字符串,也是如此 。上网搜索,是有可能是 com的类别字 ......

python 中文问题

如果Python源文件中出现中文,需要在源文件第一行加上类似如下的代码页指令:
# -*- coding:gbk -*-
如果程序的运行结果中包含中文,可以在程序开头包含如下代码,就可以正确显示中文结果:
    import sys
    reload(sys)
    sys.setdefaultencoding('gbk')
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号