[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理求文本中电话号码的重复次数和相似个数

登记客户电话号码的文本中用批处理找出重复的电话号码并说明重复次数, 然后去掉重复值后再 找出电话号码的相似个数, 忽略电话号码第4-7位,  比如15012553321与15089853321忽略4-7位就算相似
比如1.txt里面内容如下:
15848973333
15832563333
15823223333
18670014378
13027497566
13027897566
13027897566
那么通过批处理得到的2.txt内容应该如下:
13027897566重复1次
15848973333相似3个
13027497566相似2个

回复 1# winsfly


    for /f "delims=" %%k in (1.txt) do (find /i "%%k" 对比结果\2.txt||echo %%k>>对比结果\2.txt)

这个命令可去掉重复的电话号码后     再去找相似电话号码,其实就是找!OldStr:~0,3!....!OldStr:~7,4!    的重复次数了,  具体细节脑袋疼,求助

TOP

  1. #!/usr/bin/env python3
  2. #coding=utf-8
  3. Tel = dict()
  4. Like = []
  5. with open("2.txt") as f:
  6.     for line in f:
  7.         line = line.replace("\n", "")
  8.         if Tel.get(line) == None:
  9.             Tel.setdefault(line, [1,0])
  10.             Like.append(line[:3] + line[7:])
  11.         else:
  12.             Tel[line][0] += 1
  13. for k,v in Tel.items():
  14.     Tel[k][1] = Like.count(k[:3] + k[7:])
  15. for k,v in Tel.items():
  16.     print(f"{k} 重复次数为 {v[0]}\t相似数量为{v[1]}")
  17.    
复制代码
  1. 15848973333 重复次数为 1        相似数量为3
  2. 15832563333 重复次数为 1        相似数量为3
  3. 15823223333 重复次数为 1        相似数量为3
  4. 18670014378 重复次数为 1        相似数量为1
  5. 13027497566 重复次数为 1        相似数量为2
  6. 13027897566 重复次数为 2        相似数量为2
复制代码
QQ:1972544783

TOP

“相似”统计在逻辑上不通,比如有10个号码相似,以哪个号码为准进行统计。

TOP

需要下载三方工具gawk

  1. @echo off
  2. ::手机号码有重复的出现次数,即只有一次的不显示
  3. gawk "{a[$0]++}END{for(i in a){if(a[i]>1)print i\":\"a[i]}}" tel.txt
  4. ::去重复号码后,手机号码出现相似次数,手机号的前3位+后4位一样为相似
  5. gawk "{a[$0]}END{for(i in a){print i}}" tel.txt|gawk "{a[substr($0,1,3)\"****\"substr($0,8,4)]++}END{for(i in a){print i\":\"a[i]}}"
  6. pause
复制代码
如无特别说明,代码测试环境均为 XP SP3

TOP

回复 3# Gin_Q

python怎样处理文件不存在的异常

def module():
        withopen('data.json','r') as f:
                我的代码

就是data.json要是不存在,抛个异常应该怎么写?代码又是定义在自己的模块中的。

TOP

回复 6# netdzb


try:
    文件打开
except:
    捕获异常 打开文件异常
finally:
    总是要执行的代码
QQ:1972544783

TOP

回复 4# qixiaobin0715
以碰到的第一个号码为准

TOP

回复 5# cutebe
gawk可以显示在cmd,  结果怎么输出到txt文本中呢?
并且显示结果为  13027497566重复1次   18670014378相似2次这样子呢

TOP

返回列表