自动化整理文件

 最终效果如下:

 每种文件类型都整理成如下结构:

 

 一、定义一个·move_all_kind_files·函数,将文件按照如下逻辑移动

import os, shutil


def move_all_kind_files(file_name, file_path, dst, file_kind):
    # 四个参数,分别表示文件名、文件路径、移动的目标路径、文件的种类
    
    # 移动的文件种类
    kind = file_kind
    
    
    # 移动二三部的数据文件
    if '三部' in file_name or '二部' in file_name or '壹际莆田' in file_name or '达亿' in file_name \
            or '奇鲜' in file_name or '路嵩' in file_name or '英格拉' in file_name or '和奇达' in file_name:
        
        if '美国' in file_name or '墨西哥' in file_name or '北美' in file_name:
            target_dir = os.path.join(dst,kind,'二三部\北美')
            if not os.path.exists(target_dir):
                os.makedirs(target_dir)
            shutil.move(file_path, target_dir + '\\' + file_name)  # 主要功能,shutil.move()实现移动,shutil.copy()复制
        else:
            target_dir = os.path.join(dst,kind,'二三部\欧洲')
            if not os.path.exists(target_dir):
                os.makedirs(target_dir)
            shutil.move(file_path, target_dir + '\\' + file_name)
        
    # 移动管理亚马逊库存的沃尔玛
    elif '沃尔玛' in file_name:
        target_dir = os.path.join(dst,kind,'沃尔玛')
        if not os.path.exists(target_dir):
            os.makedirs(target_dir)
        shutil.move(file_path, target_dir + '\\' + file_name)
        
    # 移动一部的数据文件
    else:
        if '美国' in file_name or '加拿大' in file_name or '北美' in file_name or '墨西哥' in file_name:
            target_dir = os.path.join(dst,kind,'一部\北美')
            if not os.path.exists(target_dir):
                os.makedirs(target_dir)
            shutil.move(file_path, target_dir + '\\' + file_name)
            
        elif '日本' in file_name:
            target_dir = os.path.join(dst,kind,'一部\日本')
            if not os.path.exists(target_dir):
                os.makedirs(target_dir)
            shutil.move(file_path, target_dir + '\\' + file_name)
        else:
            target_dir = os.path.join(dst,kind,'一部\欧洲')
            if not os.path.exists(target_dir):
                os.makedirs(target_dir)
            shutil.move(file_path, target_dir + '\\' + file_name)
    

二、定义一个src_files函数,获取每个文件的文件路径,根据文件路径中的文件名来判断该文件应该移动到哪里

# 获取某个文件夹下的所有文件路径,返回值是文件路径的列表
def src_files(src_path):
    # 存放路径的空列表
    file_path_list = []
    
    # os.walk()遍历每一层文件夹。root是路径,dirs返回文件夹列表,files返回文件列表
    for root,dirs,files in os.walk(src_path):
        for file in files:
            file_path = os.path.join(root,file) # 每一个文件用os.path.join()连接成完整路径
            file_path_list.append(file_path)
    return file_path_list

三、定义主函数main,首先调用src_files函数,获取文件路径,并用for循环每一个文件,切分出文件名,接着是一个文件类型列表,存放不同的需要自动化整理的文件类型(后续可继续添加其他类型),再for循环每种文件类型,把每个文件都调用move_all_kind_files函数,实现里面的自动化整理文件的逻辑。

def main(src,dst):
    for file_path in src_files(src):
        file_name = file_path.split('\\')[-1]
        
        # 要移动的文件种类,文件的名字必须在文件种类里才能移动。
        file_kind = ['交易汇总', '交易明细','结算一览','亚马逊配送货件', '预留库存', '延迟交易',
                     '管理亚马逊库存','月度仓储费', '长期仓储费','商品推广','展示型推广','品牌推广',
                    '移除订单','所有订单','日期范围报告-交易-CSV','日期范围报告-交易-PDF','已接收库存',
                     '库存动作详情','买家退货','移除货件详情']
        
        # 遍历每个种类,判断文件是哪一种类型,调用移动文件函数,实现移动功能
        for kind in file_kind:
            if kind in file_name:
                move_all_kind_files(file_name,file_path,dst,kind)
                print(f'所有{kind}数据移动完成!!')

最后给出两个路径,启动main函数,从哪里(src)移动到哪里(dst)

# src:源文件夹路径    dst:移动到目标文件夹路径
src = r'C:\Users\Administrator\Desktop\Super Browser'
dst = r'C:\Users\Administrator\Desktop\2023年2月数据'
main(src,dst)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值