存档

文章标签 ‘python’

python调用shell脚本方法

2010年7月15日 admin 没有评论

       python调用Shell脚本,有两种方法:os.system(cmd)或os.popen(cmd),前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容。实际使用时视需求情况而选择。
现假定有一个shell脚本

test.sh:                                                                                                                                    
#!/bin/bash

echo "hello world!"
exit 3

os.system(cmd):

该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码,高位为脚本的退出状态码,即脚本中“exit 1”的代码执行后,os.system函数返回值的高位数则是1,如果低位数是0的情况下,则函数的返回值是0×100,换算为10进制得到256。

如果我们需要获得os.system的正确返回值,那使用位移运算可以还原返回值:
>>> n = os.system(test.sh)
>>> n >> 8
>>> 3

os.popen(cmd):

这种调用方式是通过管道的方式来实现,函数返回一个file-like的对象,里面的内容是脚本输出的内容(可简单理解为echo输出的内容)。使用os.popen调用test.sh的情况:
>>> file = os.popen(test.sh)
>>> file.read()
>>> ‘hello world!\n’

明显地,像调用"ls"这样的shell命令,应该使用popen的方法来获得内容。

分类: Perl/Python 标签: , ,

使用web.py创建一个blog

2010年3月5日 admin 没有评论

otherrrr@gmail.com原创,转载请注明原作者地址:otherrrr 的百度空间

注:本文针对web.py 0.23版,以及python 2.5.1;
      如果您使用web.py 0.1x版,或python 2.4.x,
      那么有些功能会有所不同

01、准备工作

先安装Python,然后安装web.py。
不会安装的朋友,参考本博客的其他文章。
数据库我准备使用Python自带的sqlite,因此不用另安装其他数据库。
(我的运行环境是在Windows 2003下面,因为Python是跨平台的,所以理论上在Linux下面一样可行,但是我没有测试)
当前程序版本:Python 2.5.1,web.py 0.23。
(Python的官方网站:http://www.python.org
(web.py的官方网站:http://webpy.org

02、数据库

数据库我是用sqlite,主要是我并不会做一个大大大大的blog,用mysql是不是太浪费了?
而且sqlite现在python也集成了,用起来很方便。
(当然也可以用mysql,很流行的,如果想使用mysql的话,请搜一下“MySQLdb”)
(在web.py 0.23版本中,目前只支持3种数据库:postgres、mysql、sqlite)

那么不用数据库可不可以?当然可以。我其实很喜欢用txt文件,呵呵。
但是大家都用,我们最好也用。
(很久很久之后的将来,你会发现用数据库的好处)

我创建一个Python源程序文件:database.py,然后写一些代码来创建一个数据库,并插入一些文件。

代码如下:

阅读全文…

分类: Perl/Python 标签: ,