Python的walk和Decorator使用一例

来源:互联网 发布:js转换 编辑:程序博客网 时间:2024/05/13 18:56

由于经常要查询C++相关的资料,翻书太麻烦,MSDN太大,去网上查询又太慢。于是决定将www.cplusplus.com整个打包成CHM,以便查询用。

 

将网站down下来之后,发现要做成CHM还是有不少后期工作要做,比如:应该把页面右上方的Login去掉。。。
正好学了Python一直没有派上大的用场,咱露它一小手吧。

 

第一个问题就是遍历目录的问题,网站下面有好几十个目录,以前写C++的经验告诉我,这得用一个递归函数来遍历。但在Python中,一个walk函数搞定一切,Fantastic!

 

举个例子:
E盘根目录下有文件夹a
 a
 ├──aa
 │  ├──aaa
 │  ├──aa.txt
 │  └──ab.txt
 ├──ab
 │  ├──aba
 │  └──ab.txt
 ├──a.txt
 └──b.txt


在Python中对目录a进行walk后:

其返回值是一个Generator,每次迭代的结果是一个Tuple t,由三个元素组成,
t[0]为当前所遍历的目录名
t[1]为当前目录下的所有子目录
t[2]为当前目录下的所有文件名

这使得遍历目录相当轻松。

 

修改页面内容的脚本如下:(略去了实现细节)

 

输出结果:

Command line: D:/programs/Python26/python.exe D:/Projects/Python/MODIFY~1.PY
Working directory: D:/Projects/Python
Timeout: 0 ms

 

1 / 2135 -->"e:/CppReference/www.cplusplus.com/default.htm"  is done!
2 / 2135 -->"e:/CppReference/www.cplusplus.com/articles/default.htm"  is done!
3 / 2135 -->"e:/CppReference/www.cplusplus.com/doc/default.htm"  is done!
......
1194 / 2135 -->"e:/CppReference/www.cplusplus.com/reference/string/string/swap/default.htm"  is done!
1195 / 2135 -->"e:/CppReference/www.cplusplus.com/reference/string/swap/default.htm"  is done!
1196 / 2135 -->"e:/CppReference/www.cplusplus.com/src/default.htm"  is done!

 

Process "Python Interpreter" terminated, ExitCode: 00000000

 

一个小程序让我学到了很多东西,由于是自用的,也没有错误处理,也没有异常。所以
我一定会回来的!

原创粉丝点击