Created
April 17, 2014 07:50
-
-
Save singlepig/10962162 to your computer and use it in GitHub Desktop.
按文件名前缀分类文件。 一个目录下有很多形如2012-08-23 18.20.41.jpg的文件,要将这些文件进行分类,对于2012-08-23 18.20.41.jpg文件, 生成文件夹2012-08 ,将其放到文件夹内。
This file contains 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 characters
#!/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) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment