qq_41589064 2023-07-04 16:13 采纳率: 0%
浏览 20

关于#python#的问题:python读取word文档,使用ini中的正则表达式进行判断,但只有身份证号码的正则表达式可以准确进行判断,银行卡号码、电话号码要么无法判断

python读取word文档,使用ini中的正则表达式进行判断,但只有身份证号码的正则表达式可以准确进行判断,银行卡号码、电话号码要么无法判断,要么判断结果有误。

下面是判断的代码

def pwd_docx(old_filename, new_filename, password):
    word_app = win32.gencache.EnsureDispatch('Kwps.Application')
    word_app.Visible = 0
    word_app.DisplayAlerts = 0
    doc = word_app.Documents.Open(old_filename)
    doc_range = doc.Range()
    content = doc_range.Text.replace('\r', '\n')
    doc.Close()
    word_app.Quit()
    print(content)

    found_matches = re.findall(fetch_ini('身份证号码='), content)
    print(fetch_ini('身份证号码='))
    encrypt_count = len(found_matches)
    encrypt_limit = 20
    need_encrypt = False
    print(encrypt_count)

    if encrypt_count >= encrypt_limit:
        need_encrypt = True

    if need_encrypt:
        word_app = win32.gencache.EnsureDispatch('Kwps.Application')
        word_app.Visible = 0
        word_app.DisplayAlerts = 0
        doc = word_app.Documents.Open(old_filename)
        doc.SaveAs(new_filename, Password=password)
        doc.Close()
        word_app.Quit()
        return True

    return False

def fetch_ini(word_str):
    out_str = ''
    with open('dsip-tool.ini', 'r', encoding='utf-8') as f:
        for line in f:
            if line.strip().startswith(word_str):
                out_str = line.strip()
    out_str = out_str[len(word_str):]

    return out_str

请问各位知道是什么原因吗,困扰了一个星期了

补充:以下是我dsip-tool.ini里面的内容:

银行卡号码=(?:\d{15,19}|\d{3}-\d{4}-\d{4}-\d{4}|\d{4}\s\d{4}\s\d{4}\s\d{4})
身份证号码=\b(?:\d{17}[\dXx]|\d{15})\b
电话号码=^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\d{8}$
表格格式=xls,xlsx,xlsb,xlsm,et,etx
文档格式=wps,word,doc,docx
文本格式=
敏感信息条数=20


读取的时候,选择读取身份证号码,可以正确读取到并加密,但改成银行卡号码和电话号码时,却无法检测到。

  • 写回答

2条回答 默认 最新

  • threenewbee 2023-07-04 16:29
    关注

    调试一下,你这个要结合 word 文档调试
    print(content)
    这里输出什么
    return out_str
    这里返回什么
    是否有电话号码、卡号之类的
    另外,你的代码里怎么没看到正则表达式

    评论

报告相同问题?

问题事件

  • 修改了问题 7月4日
  • 修改了问题 7月4日
  • 创建了问题 7月4日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表