python现有两个磁盘文件a和b_Python应用小技巧之根据文件名获取A与B文件夹的差集并另存...

背景介绍

最近工作忙的焦头烂额的,需求一件接着一件,有好多事情人工来做非常的浪费时间,只好开发一些小的脚本来快速解决某些问题,就像现在有一个需求尽快解决,需求背景为:目前有A、B两个文件夹,A文件夹中存储的是原始的文件,B文件夹存储的是A文件夹中文件经过逻辑处理后的文件,需要找到A文件夹中存在而B文件夹中不存在的文件将这些文件存储在C文件夹下。

注意事项A、B文件夹有区别就是A文件夹中的文件与B文件夹中的文件文件名相同文件后缀不同

A、B文件夹下的文件有一部分文件的文件名中存在点(.)等特殊符号也就是说使用点(.)进行分割也不会特别的准确

使用模块

os

shutil

思考步骤获取A、B文件夹下的所有文件名(包括后缀)

使用方法切分出不包含后缀的文件名

获取A和B文件夹的差集

根据不包含文件后缀的差集找寻A文件夹下响应的文件

将文件逐个存储到C文件夹下

实现方法

import os

import shutilold_files_path = r"C:\Users\A" # A文件夹位置

new_files_path = r"C:\Users\B" # B文件夹位置

lou_path = r"C:\Users\C" # C文件夹位置

old_files_s = os.listdir(old_files_path) # 得到文件夹下的所有文件名称

new_files_s = os.listdir(new_files_path) # 得到文件夹下的所有文件名称

old_files = [os.path.splitext(i)[0] for i in old_files_s] # 去除文件后缀名生成list

new_files = [os.path.splitext(i)[0] for i in new_files_s] # 去除文件后缀名生成list

c_files = list(set(old_files).difference(set(new_files))) # 获取差集for i in old_files_s:

name = os.path.splitext(i)[0]

if name in c_files:

src = old_files_path + "/" + i # 拼接老文件夹路径

dst = lou_path +"/"+i # 拼接新文件夹路径

shutil.move(src, dst) # 将A文件夹中符合条件的文件转移到C文件夹中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值