- 论坛徽章:
- 0
|
晚上回来又重新做了一遍,改进主要有这几点:
a.加入了文件类型限定,即pdf和chm文件,因为其他类型文件并不多,并且压缩文件内容还未确定。
b.把要通过命令行的事情集中写入批处理文件,然后只需一次shell调用。并且有明确的记录。
[color="#008080"]# encoding:gb2312
[color="#0000ff"]import [color="#800000"]os
[color="#0000ff"]import [color="#800000"]sys
[color="#000000"]sPath[color="#000080"]=[color="#800080"]'M:\Python'
[color="#000000"]sWorkBat[color="#000080"]=[color="#800080"]'workDirect.bat'
[color="#000000"]aWorkExt[color="#000080"]=[color="#000000"][[color="#800080"]'pdf'[color="#000000"],[color="#800080"]'chm'[color="#000000"]]
[color="#0000ff"]if not [color="#800000"]os[color="#000080"].[color="#000000"]path[color="#000080"].[color="#ff00ff"]isdir[color="#000000"](sPath):
[color="#0000ff"]print [color="#800080"]'Wrong base path'
[color="#800000"]sys[color="#000080"].[color="#ff00ff"]exit[color="#000000"]()
[color="#800000"]os[color="#000080"].[color="#ff00ff"]chdir[color="#000000"](sPath) [color="#008080"]# 工作目录
[color="#000000"]sCmdBat[color="#000080"]=[color="#800080"]''
[color="#0000ff"]def [color="#000000"]quotePath(_p):
[color="#0000ff"]return [color="#800080"]'"'[color="#000080"]+[color="#000000"]_p[color="#000080"]+[color="#800080"]'"'
[color="#0000ff"]def [color="#000000"]checkInclude(_e,_l):
[color="#0000ff"]for [color="#000000"]e [color="#0000ff"]in [color="#000000"]_l:
[color="#0000ff"]if [color="#000000"]e[color="#000080"]==[color="#000000"]_e:
[color="#0000ff"]return [color="#000000"]True
[color="#0000ff"]return [color="#000000"]False
[color="#0000ff"]for [color="#ff00ff"]f [color="#0000ff"]in [color="#800000"]os[color="#000080"].[color="#ff00ff"]listdir[color="#000000"](sPath):
[color="#0000ff"]if [color="#800000"]os[color="#000080"].[color="#000000"]path[color="#000080"].[color="#ff00ff"]isfile[color="#000000"]([color="#ff00ff"]f[color="#000000"]): [color="#008080"]# 只处理文件
[color="#000000"]iEx[color="#000080"]=[color="#ff00ff"]f[color="#000080"].[color="#ff00ff"]rfind[color="#000000"]([color="#800080"]'.'[color="#000000"]) [color="#008080"]# 取得扩展名前索引
[color="#0000ff"]if [color="#000000"]iEx:
[color="#000000"]sEx[color="#000080"]=[color="#ff00ff"]f[color="#000000"][iEx[color="#000080"]+[color="#000000"]1:][color="#000080"].[color="#ff00ff"]lower[color="#000000"]() [color="#008080"]# 得出扩展名
[color="#0000ff"]if [color="#000000"]checkInclude(sEx,aWorkExt):
[color="#000000"]sDir[color="#000080"]=[color="#800080"]'Book_'[color="#000080"]+[color="#000000"]sEx [color="#008080"]# 目标分类目录
[color="#0000ff"]if not [color="#800000"]os[color="#000080"].[color="#000000"]path[color="#000080"].[color="#ff00ff"]exists[color="#000000"](sDir) [color="#0000ff"]or not [color="#800000"]os[color="#000080"].[color="#000000"]path[color="#000080"].[color="#ff00ff"]isdir[color="#000000"](sDir): [color="#008080"]# 确保目录存在
[color="#800000"]os[color="#000080"].[color="#ff00ff"]mkdir[color="#000000"](sDir)
[color="#000000"]sCmd[color="#000080"]=[color="#800080"]' '[color="#000080"].[color="#ff00ff"]join[color="#000000"]([[color="#800080"]'move'[color="#000000"],quotePath([color="#ff00ff"]f[color="#000000"]),sDir])
[color="#000000"]sCmdBat[color="#000080"]+=[color="#000000"]sCmd[color="#000080"]+[color="#800080"]'\n'
[color="#008080"]# 准备并写入批处理文件并
[color="#000000"]fBat[color="#000080"]=[color="#ff00ff"]file[color="#000000"](sWorkBat,[color="#800080"]'w'[color="#000000"])[color="#008080"]
[color="#000000"]f[color="#000000"]Bat[color="#000080"].[color="#ff00ff"]write[color="#000000"](sCmdBat)
[color="#000000"]f[color="#000000"]Bat[color="#000080"].[color="#ff00ff"]close[color="#000000"]()
[color="#008080"]# 执行批处理
[color="#800000"]os[color="#000080"].[color="#ff00ff"]system[color="#000000"](sWorkBat)
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/28253/showart_218857.html |
|