python程序小工具——对比两个文件夹差异

写在前面:

功能说明:给了两个文件夹,需要对比出两个文件夹的文件不同之处,包括前一个文件夹比后一个文件夹减少了哪些文件或子文件夹,亦或是后一个比前一个多了多少。

思路:

根据当下的要求,只是简单对比两个文件夹的文件名的异同。

说明扩展:

1、由于当前的程序只是对比了文件名相同与否,并不能保证后一个文件夹中的文件是否只是文件名相同,但是文件内容已经进行了修改。如果需要对比确保文件是否修改,可以在获取当前文件夹下文件的函数get_files里面,添加记录文件的最后修改时间,与文件名进行拼接组合成key,这样在后续两文件夹对比时也可以分离出修改时间。

2、同样地,该程序同样没有对比文件扩展名,如果需要对比不同的文件格式,方法同上,也是保留拓展名放置于key中。

import os
import shutil
import time
from collections import defaultdict


def make_dir(file_path, file_name = None):
    """
    创建文件夹
    :param file_path:
    :return:
    """
    if file_name is not None:
        file_path = os.path.join(file_path, file_name)
    try:
        os.mkdir(file_path)
    except FileExistsError:
        print('文件夹已存在')


def get_files(file_path):
    """
    获取当前绝对路径下的所有文件名
    :param file_path: 文件夹绝对路径
    :return: 记录文件的路径字典,记录文件夹的路径字典
    """
    file_list = os.listdir(file_path)
    # 当前文件夹下所有文件和文件夹的列表,key为文件名(不含拓展名),value为该文件的绝对路径
    file_dict = defaultdict(str)
    dir_dict = defaultdict(str)
    for file in file_list:
        # print(file)
        file_item = os.path.join(file_path, file)
        if os.path.isfile(file_ite
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值