python文件操作-文件分类

文件的分类,并产生文件清单

给定一批文件:a.avi、b.jpg、c.jpg、d.txt、e.avi、f.txt

1.按照文件后缀名,划分到不同的文件夹:文件夹命名:后缀名。结果avi:a.avi、e.avi。jpg:b.jpg、c.jpg。txt:d.txt、f.txt

2.生成txt格式文件清单。

python文件操作-文件分类_第1张图片


#
# 文件的分类,并产生文件清单
#
# 给定一批文件:a.avi、b.jpg、c.jpg、d.txt、e.avi、f.txt
# 1.按照文件后缀名,划分到不同的文件夹:文件夹命名:后缀名。结果avi:a.avi、e.avi。jpg:b.jpg、c.jpg。txt:d.txt、f.txt
# 2.生成txt格式文件清单。


import os
import shutil
path = "files"
if not os.path.exists(path):
    exit(path, "文件路径不存在,请创建")
# 步骤
# 0.获取所有的文件名称列表。
os.chdir(path)
file_list = os.listdir("./")
# print(file_list)
# 1.遍历所有的文件(名称)
for file_name in file_list:
    # print(file_name)
# 2.分解文件的后缀名
# 2.1先获取最后一个“.”的索引位置
    file_index = file_name.rfind(".")
    if not file_index == -1:
        continue
    # print(file_index)

# 2.2根据这个索引位置,来截取后续的所有字符串的内容。
    extension = file_name[file_index + 1:]
    # print(extension)
# 3.拿到后缀名和目录名做对比。查看是否存在同名的目录

# 4.如果不存在,创建这样的目录
# 5.如果目录存在,就直接保存过去。
    if not os.path.exists(extension):
        # 创建
        os.mkdir(extension)
    # 移动
    shutil.move(file_name, extension)
# 6.生成列表清单:
# file_dir = os.listdir("./")
# print(file_dir)
def list_dirTotxt(dir, file):
    # 1.列举出当前给定文件夹下的所有子文件夹以及子文件。
    file_dir = os.listdir(dir)
    # print(file_dir)
    # 2.针对于,列举的列表,进行遍历。
    for file_name_dir in file_dir:
        new_filename = dir + "/" + file_name_dir
        # 3.遍历的过程中,判定是否是目录。如果是目录,则在再次调用list_dir(dir)
        if os.path.isdir(file_name_dir):
            # print(new_filename)
            file.write(new_filename + "\n")
            list_dirTotxt(new_filename, file)
        else:
            # print("\t" + file_name_dir)
            file.write("\t" + file_name_dir + "\n")
        # 4.不是目录,则直接打印文件名称
    # print("")
    file.write("\n")
f = open("../name.txt", "w")
list_dirTotxt("../files", f)


你可能感兴趣的:(python学习)