0
点赞
收藏
分享

微信扫一扫

python将当前文件夹下的文本文件分类移动到当前目录下对应的子目录

爱我中华8898 2022-04-29 阅读 66
python

python将当前文件夹下的文本文件分类移动到当前目录下对应的子目录

例如,将'D:\PYTHONWORKPLACE\data\txt'目录下的13种文件移动到对应13个文件夹(跳过文件夹创建过程)

代码如下:

# 移动文件到对应文件夹
def move_files_to_type_folder(folder):
    import re
    import shutil
    import glob
    import os

    # 用来匹配文件类型的匹配条件
    match_condition = re.compile(r'[A-Z_A-Z]')

    # 获取目录下所有文件和文件夹名
    allfiles = os.listdir(folder)
    file_types = []
    # 剔除文件,剩下文件夹
    for f in allfiles:
        fname = os.path.join(folder, f)
        if os.path.isfile(fname):
            pass
        else:
            file_types.append(f)

    # 匹配文件夹下所有txt文件路径
    files = glob.glob(os.path.join(folder, "*.txt"))

    # 文件名匹配和移动文件
    for f in files:
        # 匹配文件名
        fname = os.path.basename(f)

        # 从文件名匹配字母确定文件类型
        type_arr = match_condition.findall(fname[:-4])

        # 将字符数组转为字符串
        type_str = ""
        type_str = type_str.join(type_arr)

        # 根据文件名判断文件类型
        for f_type in file_types:
            if type_str == f_type:
                # 移动的目的文件夹名
                new_filename = folder + '\\' + type_str + '\\' + fname
                # 移动文件
                shutil.move(f, new_filename)
                print('move {} to {} successfully'.format(f, new_filename))
                break


if __name__ == '__main__':
    folder = r'D:\PYTHONWORKPLACE\data\txt'
    move_files_to_type_folder(folder)
举报

相关推荐

0 条评论