在实现文件分类之前,我们先来熟悉下实现该功能所需要的类库与函数
os
库中的os.walk(file_dir)
与os.listdir(file_dir)
函数:
os.listdir(file_dir)
适用于目录下只有文件而没有文件夹的情况 for filename in os.listdir(file_dir):
print(filename);
其函数返回只包含文件或文件夹的名字os.walk(file_dir)
适用于目录下包含文件夹及文件的情况 for root,dirs,files in os.walk(file_dir):
print(root);
print(dirs);
print(files);
其函数返回值为一个包含了dirpath,dirnames,filenames
的三元组,其中dirpath
为文件路径的字符串,dirnames
为该路径下的所有文件夹组成的集合,filenames
为该路径下所有的文件名组成的集合os.path.splitext(file_path)
分离文件名与扩展名 tmp = os.path.splitext(filename);
print(tmp);
其函数返回值为包含了文件名与扩展名的一个元组(filename,fileextension)
os.mkdir(dir_name)
创建文件夹
shutil
库中shutil.move(src,dst)
函数
shutil.move(src,dst)
将src
移动到dst
目录中 import os
import shutil
def file_name(file_dir):
for root,dirs,files in os.walk(file_dir):
if len(files) != 0:
for file in files:
tmp = os.path.splitext(file)[-1][1:];
dir_name = "E:/python Workspace/" + tmp;
if os.path.exists(dir_name):
if not os.path.exists(dir_name+"/"+file):
print(file);
shutil.move(root+"/"+file,dir_name);
else:
os.mkdir(dir_name);
file_name_list("E:/python Workspace/maven-central");
将一个文件夹中的所有文件,按照文件后缀名进行分类,把具有相同扩展名的文件移动到相应的文件夹中