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