python学习笔记

Table of Contents

1 零散随笔(需要整理)

  • 路径处理和文件操作。os.getcwd()可以得出运行目录的绝对路径, __file__ 是当前python脚本文件的相对路径,os.path.dirname()接受包 含文件路径的字符串,返回目录路径。注意,这里文件路径其实是指不以 ‘/'结尾的字符串。也就是说,即使这个路径是一个目录,如果没有以'/'结 尾的话,也会把最后的目录名去掉这个函数实际上就是把最后一个'/'字符后 的字符串全部删除。os.rename和shutil.move都可以用来移动文件。在结巴 分词的cache实现中,他们先生成一个随机命名的文档,然后再改名为目标文 档。同时他们在Windows下用move,在*nix下用rename。
  • logging模块。建立logger,用来统一管理输出信息。为使用print调试的增 强版。
  • tempfile模块。建立临时文件cache。用os.path.getmtime去比较cache文件 和数据文件的修改时间来决定是否重新建立cache。
  • threading模块。
  • marshal模块。跟pickle类似,但是只可以处理简单类型。pickle可以处理递 归引用的对象
import threading

LOCK = threading.RLock()

with LOCK:
    # do something.
  • with ... as ... 语句的作用在于自动释放对象。如果实现一个类里面有 __enter____exit__ 函数的话,这个语句会先实例化对象,然后调 用 __enter__ 函数并返回这个函数的返回内容( 不是这个类的对象 ),最后调用 __exit__ 来释放对象。可以在 __enter__ 中加入异常 处理代码,使得异常处理和自动对象释放无缝衔接。

2 单元测试

python -m unittest discover

3 线程,进程

4 文档生成

sphinx

Author: Xiao LIU

Created: 2014-10-29 Wed 18:05

Emacs 24.3.1 (Org mode 8.2.10)