使用python筛选所需要的Excel文件

使用python筛选所需要的Excel文件

  最近公司要求从两千多个Excel文件中,找出包含敏感信息的Excel文件。通过抽取部分样本文件之后,发现包含敏感信息的文件都有相同特征的数据,所以我通过通过python实现对特征数据的匹配,获取到相应的Excel文档。
  实现过程分三步:
  第一步:获取文件夹下所有文件,使用递归查询

def getAllFiles(targetDir):
    files = []
    listFiles = os.listdir(targetDir)
    for i in range(0, len(listFiles)):
        path = os.path.join(targetDir, listFiles[i])
        if os.path.isdir(path):
            files.extend(getAllFiles(path))
        elif os.path.isfile(path):
            files.append(path)
            # print(listFiles[i])
    return files

如果路径下文件类型太多,只遍历excel文件后缀:

def getAllFiles(targetDir):
    files = []
    file_type_list = ['.xls', 'xlsx']
    listFiles = os.listdir(targetDir)
    for i in range(0, len(listFiles)):
        path = os.path.join(targetDir, listFiles[i])
        if os.path.isdir(path):
            files.extend(getAllFiles(path))
        elif os.path.isfile(path):
            f, e = os.path.splitext(path)
            if e in file_type_list:
                files.append(path)
    return files

  第二步:匹配特征数据
  此部分我使用pandas读取Excel数据,并且匹配其中一个单元格的特征是数据。

if __name__ == '__main__':
    text = ['特征数据']
    excel_path_dir = r'D:\excel_path'
    list = getAllFiles(excel_path_dir)

    for e in list:
        df = pd.read_excel(e)
        try:
            data = df.iloc[[0], [5]].values[0][0]
            if data in text :
                print(e[-22:])
        except:
            continue

  第三步:输出文件名称
  将打印数据输出到文件即可,方式如下,我直接百度搜索拷贝的,我这里输出到excelList.txt

class Logger(object):
    def __init__(self, filename="Default.log"):
        self.terminal = sys.stdout
        self.log = open(filename, "a")

    def write(self, message):
        self.terminal.write(message)
        self.log.write(message)

    def flush(self):
        pass

sys.stdout = Logger('excelList.txt')

作者:likaifei

出处:https://www.cnblogs.com/likaifei/p/16706890.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   adai_kfl  阅读(264)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
点击右上角即可分享
微信分享提示