在实现文件分类之前,我们先来熟悉下实现该功能所需要的类库与函数
1. 类库函数介绍
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
目录中
2. 源代码
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");
将一个文件夹中的所有文件,按照文件后缀名进行分类,把具有相同扩展名的文件移动到相应的文件夹中