Python应用:分类归档--建立批处理,一次执行Shell调用

晚上回来又重新做了一遍,改进主要有这几点:
    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)