Python实践:分类归档--按关键字移动文件到子文件夹


               
[color="#008080"]#  pickOutByKey.py
[color="#008080"]#  encoding:gb2312
[color="#008080"]#  在电骡下载目录程序分类中,以sortAndMoveArchive.py产生的结果为基础
[color="#008080"]#  按照关键字分类并移出:
[color="#008080"]#  包含python则不动
[color="#008080"]#  包含perl移动到Perl目录
[color="#008080"]#  其他移动到Other目录
[color="#0000ff"]import [color="#800000"]os
[color="#000000"]sFrom[color="#00c600"]=[color="#ff00ff"]'E:\eMule\Incoming\程序_'
[color="#000000"]sTgt[color="#00c600"]=[color="#ff00ff"]'Perl'
[color="#000000"]sOther[color="#00c600"]=[color="#ff00ff"]'other'
[color="#800000"]os[color="#00c600"].[color="#808000"]chdir[color="#000000"](sFrom)     [color="#008080"]#   定位工作目录
[color="#0000ff"]def [color="#000000"]quotePath(sPath):
    [color="#0000ff"]return [color="#ff00ff"]'"'[color="#00c600"]+[color="#000000"]sPath[color="#00c600"]+[color="#ff00ff"]'"'
[color="#0000ff"]def [color="#000000"]execute(sCmd):  [color="#008080"]#   执行一个Shell命令
    [color="#0000ff"]print [color="#000000"]sCmd
    [color="#0000ff"]if [color="#800000"]os[color="#00c600"].[color="#808000"]system[color="#000000"](sCmd)[color="#00c600"]==[color="#000000"]0:
        [color="#0000ff"]print [color="#ff00ff"]"successfully!"
    [color="#0000ff"]else[color="#000000"]:
        [color="#0000ff"]print [color="#ff00ff"]"fail~"
[color="#0000ff"]for [color="#000000"]d [color="#0000ff"]in [color="#800000"]os[color="#00c600"].[color="#808000"]listdir[color="#000000"](sFrom):
    [color="#0000ff"]if [color="#800000"]os[color="#00c600"].[color="#000000"]path[color="#00c600"].[color="#808000"]isdir[color="#000000"](d) [color="#0000ff"]and [color="#000000"]d[color="#00c600"].[color="#800000"]find[color="#000000"]([color="#ff00ff"]'archive_'[color="#000000"])![color="#00c600"]=-[color="#000000"]1: [color="#008080"]#   在归档目录
        [color="#0000ff"]for [color="#808000"]f [color="#0000ff"]in [color="#800000"]os[color="#00c600"].[color="#808000"]listdir[color="#000000"](sFrom[color="#00c600"]+[color="#800000"]os[color="#00c600"].[color="#000000"]sep[color="#00c600"]+[color="#000000"]d):
            [color="#000000"]lf[color="#00c600"]=[color="#808000"]f[color="#00c600"].[color="#808000"]lower[color="#000000"]()
            [color="#0000ff"]if [color="#000000"]lf[color="#00c600"].[color="#800000"]find[color="#000000"]([color="#ff00ff"]'python'[color="#000000"])[color="#00c600"]==-[color="#000000"]1 :    [color="#008080"]#   不包含python
                [color="#0000ff"]if [color="#000000"]lf[color="#00c600"].[color="#800000"]find[color="#000000"]([color="#ff00ff"]'perl'[color="#000000"])![color="#00c600"]=-[color="#000000"]1:   [color="#008080"]#    包含perl移到perl
                    [color="#000000"]sCmd[color="#00c600"]=[color="#ff00ff"]' '[color="#00c600"].[color="#808000"]join[color="#000000"]([[color="#ff00ff"]'move'[color="#000000"],quotePath(d[color="#00c600"]+[color="#800000"]os[color="#00c600"].[color="#000000"]sep[color="#00c600"]+[color="#808000"]f[color="#000000"]),quotePath(sTgt)])
                    [color="#000000"]execute(sCmd)
                [color="#0000ff"]else [color="#000000"]:    [color="#008080"]#    其他移到other
                    [color="#0000ff"]if not [color="#800000"]os[color="#00c600"].[color="#000000"]path[color="#00c600"].[color="#808000"]exists[color="#000000"](sOther):
                        [color="#800000"]os[color="#00c600"].[color="#808000"]mkdir[color="#000000"](sOther)
                    [color="#000000"]sCmd[color="#00c600"]=[color="#ff00ff"]' '[color="#00c600"].[color="#808000"]join[color="#000000"]([[color="#ff00ff"]'move'[color="#000000"],quotePath(d[color="#00c600"]+[color="#800000"]os[color="#00c600"].[color="#000000"]sep[color="#00c600"]+[color="#808000"]f[color="#000000"]),quotePath(sOther)])
                    [color="#000000"]execute(sCmd)