Chinaunix首页 | 论坛 | 博客
  • 博客访问: 303118
  • 博文数量: 34
  • 博客积分: 2375
  • 博客等级: 大尉
  • 技术积分: 354
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-09 05:49
文章存档

2013年(1)

2012年(3)

2011年(10)

2010年(20)

我的朋友

分类: Python/Ruby

2010-05-19 09:57:23

在调试demon代码时,常会碰到一些模块无法导入的情况,这是因为好多模块不是Python的标准库,
而是demon安装目录下的库文件,所以学习demon源码的时候,要把这些库copy到同一个目录下,
才能顺利调试,最常用的库是run.py,这个库定义了一些app函数,以及运行系统,操作参数的设定。
 
举例:
 
 

#!/usr/bin/env pyton
#coding:UTF-8
'''
Created on 2010-5-19
wxPython Demon
一个demon中的源程序。
简单介绍一下这种demon的注意事项
'
''

import wx
import os
import sys

try:
    dirName = os.path.dirname(os.path.abspath(__file__))
except:
    dirName = os.path.dirname(os.path.abspath(sys.argv[0]))

sys.path.append(os.path.split(dirName)[0])

try:
    from agw import buttonpanel as bp
except ImportError:

# if it's not there locally, try the wxPython lib.
    import wx.lib.agw.buttonpanel as bp

import images
import random
#
#中间省略N行........
#

if __name__ == '
__main__':
    import sys,os
    import run
    run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])


1..这个源程序用到了两个作者制作的模块,一个是run.py,一个是images.py。

要将这两个文件和你调试用的文件放一个目录,才能正常运行。

2..sys.argv[],是一记录参数的列表,sys.argv[0]是运行程序自身的文件名,

sys.argv[1:]是程序运行时所带的参数。举例说明:

命令行下运行如下命令:

C:\>python test.py -k -i --m

此时

sys.argv[0]就是要运行的文件名:test.py

sys.argv[1:]就是所带的参数列表:-k -i --m

3..最后一行

run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])

其中运行参数是个列表,列表的第一项是空字符串,表示要运行的程序在当前目录下,

如果不在当前目录,要用程序文件所在的路径替换空字符串。

os模块方法:

====================================================================

@1.)文件操作:

remove()/unlink()         删除文件

rename()/renames()        重命名文件

stat()                    返回文件信息

symlink()                 创建符号链接

utime()                   更新时间戳

tmpfile()                 创建并打开('w+b')一个临时文件

walk()                    生成一个目录树下的所有文件名

@2.)目录/文件夹操作:

chdir()/fchdir()          改变当前工作目录/通过文件描述符改变

chroot()                  改变当前进程的根目录

listdir()                 列出指定目录下的文件

getcwd()/getcwdu()        返回当前工作目录/unicode模式的返回值

mkdir()/makedirs()        创建目录/创建多层目录

rmdir()/removedirs()      删除目录/删除多层目录

@3.)访问/权限:

access()                  检验权限模式

chmod()                   更改权限

chown()/lchown()          更改文件所有者,GroupID/同功能,不追踪lnk

umask()                   设置默认权限

@4.)文件描述符操作:

open()                   

read()/write()

dup()/dup2()              复制文件描述符/将一个文件描述符复制到另一个

==================================================================

os.path路径名访问方法:

==================================================================

@1.)分割:

basename()               去掉目录名,返回文件名

dirname()                去掉文件名,返回目录名

join()                   将分离的各部分重新组合成路径名

split()                  返回(dirname(),basename())元组

splitdrive()             返回(drivename,pathname)元组

splitext()               返回(文件名,扩展名)元组

@2.)信息:

getatime()               返回最近访问的时间

getctime()               返回创建的时间

getmtime()               返回修改的时间

getsieze()               返回文件大小

@3.)查询判断:

exists()                 指定路径(文件或目录)是否存在

isabs()                  指定路径是否是绝对路径

isdir()                  

isfile()

islink()

ismount()               是否是挂载点

samefile()              俩路径是否指向同一文件

==================================================================

 

PS:

完整的示例代码在附件中,放到同一文件夹中就可以调试。

文件: ButtonPanel_Demon.rar
大小: 355KB
下载: 下载


 

阅读(3020) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~