Created
April 17, 2014 07:50
-
-
Save singlepig/10962162 to your computer and use it in GitHub Desktop.
Revisions
-
singlepig created this gist
Apr 17, 2014 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,62 @@ #!/usr/bin/env python # encoding: utf-8 ''' 按文件名前缀分类文件。 一个目录下有很多形如2012-08-23 18.20.41.jpg的文件,要将这些文件进行分类,对于2012-08-23 18.20.41.jpg文件, 生成文件夹2012-08 ,将其放到文件夹内。 ''' import sys import os def creatDir(names): ''' 根据目录下的文件名创建所需要的文件夹,已经存在的文件夹跳过。 ''' dirList = [] for name in names: if os.path.isdir(name): print ("%s is a dir." % (name) ) continue dirList.append(name[0:7]) dirList = list(set(dirList)) print ( "将要创建的文件夹为:%s" % dirList) print ( "将在 %s 下创建。" % absTargetPath ) os.chdir(absTargetPath) for path in dirList: if os.path.exists(path): print ( "文件夹 %s 已经存在!" % path ) else: os.makedirs(path) print ( "创建文件夹 %s 成功!" % path) def classify(names): ''' 将文件放到对应的文件夹中 ''' for n in xrange(len(nameList)): old = os.path.join(absTargetPath, nameList[n]) new = os.path.join(absTargetPath, nameList[n][0:7]) ''' 移动文件 ''' os.rename(old, new + '/' + nameList[n]) print ("文件 %s 移动到 %s 中,done!" % (nameList[n], new)) if __name__ == '__main__': docPath = sys.argv[1] print '需要进行分类的目标目录绝对路径为:' absTargetPath = os.path.abspath(docPath) print absTargetPath nameList = [] for name in os.listdir(absTargetPath): if os.path.isfile(absTargetPath + '/' + name): nameList.append(name) print ("包含文件 %s 个。" % len(nameList)) creatDir(nameList) classify(nameList)