在邻市的乡镇派出所基层锻炼期间,手上有一个关于侵犯公民个人信息的案子,取证出来的数据大概有 19k 左右个 excel 文件,要对其进行清洗去重得出有多少条个人信息(按 excel 行数计),但是导出的文件名、excel 行列都没有统一格式。但是只有 sheet1 有数据,并且需要统计其中的手机号的条数就可以。最主要的是要对最后的结果进行去重,一个手机号出现多次也只能算一次。
太久没用 py,粗略的拉稀代码跑跑了一下,最后结果有一亿多条,这是在对文件去重(因为是从后台拖出来的数据,有的时候一个文件保存了多次,通过 md5 去重了)情况下得出来的。但是没有对手机号来进行总的去重。条数涉及证据严谨和对犯人的量刑,本来所里是打算一个半月发动全所之力来复制粘贴的,我心里觉得这真的是对警力资源的浪费。现在想来求助大家给点小民警可以 ctrl c/v 的代码来尽量解决这个问题。
//没有钱。可能仅有的好处就是有点打击黑产的光荣感?
有 v 友对体制和公考感兴趣的,也可在下面留言,我也会知无不言。
谢谢大家!
谢谢大家的回答!加班到现在的小弟心里充满感激。v友很多回答都很实用,基本的代码还能看懂,但代码的实现实在力不从心了。如果有v友能提点一些关键代码,感激不尽! 所长说假如相关脚本写成功之后,要保存在所里以后继续使用。能帮到的老哥可以把自己的id写到注释里的author 里,这样湖北某个派出所里可能每个到这里工作的人都得用着你的脚本并且看到脚本作者,也算有一点点的荣誉感吧?当然也可能没有…至少可以跟别人吹吹水了。
1
PublicUser 2020-08-20 23:53:31 +08:00
我觉得你申请一下办公经费,找个外包更靠谱
|
2
dji38838c 2020-08-20 23:57:42 +08:00
上面说的没错,一个人干一个人的活,不要想着把所有人的工作都做了
|
3
EscYezi 2020-08-20 23:59:48 +08:00 via iPhone 1
提一个比较简单粗暴的方法,遍历每一个文件每一行每一个单元格,然后把所有 1 开头的字符串提取出来,去重后再过滤掉含有非数字字符的字符串,最后统计个数。
|
4
calmzhu 2020-08-21 00:06:02 +08:00 via Android 1
支持民警
不算复杂的需求,我应该可以做。 但是需求有点不清楚 。 意思是 19000 个 excel(可能有重复),然后从每个 excel 的 sheet1 中提取出电话号码并去重计算次数吗? 有个问题。第二张图里面。一行看有多个电话号码的。这种是算一个记录还是每个不重复的算一个。 |
5
hankai17 2020-08-21 00:06:11 +08:00 via iPhone
手机号正则匹配
|
6
fishspecial OP @PublicUser 乡镇派出所不可能有这个经费的,我现在加班的夜宵都是自己掏钱。
|
7
fishspecial OP @dji38838c 到时候我也逃不脱的哈哈哈,觉得做这个事情很蠢。
|
8
ys0290 2020-08-21 00:08:54 +08:00 via iPhone 1
妄加揣摩一下,成了以后这种事都得你搞,不成就得顶得住压力。外包吧……
|
9
calmzhu 2020-08-21 00:09:28 +08:00 via Android 1
然后我记得 excel 好像是类似 xml 的标记文本格式。
如果需求跟上面我说的匹配,直接把 excel 当文本,然后用正则把所有电话号码过滤出来,再去重 |
10
fishspecial OP @calmzhu 谢谢你的回答! 19000 左右的 excel 中,因为被多次保存,有些 excel 是一模一样的数据,我就通过计算 excel 的行数来保证没有相同行数的 excel (相同行数的数据不同的 excel 这种情况忽略不计)达成去重的目的。因为不管哪个 excel 文件,每一行数据都会包含手机号,也就是手机号的条数就是 excel 的行数,但是这样就会导致,假如一个手机号在多个文件里出现就引起重复计算,所以的确没想好怎么提取 19000 个 excel 的所有手机号来进行总的去重。一假如可以不花太多功夫,一行中有多个手机号的每个不重复的算一个,但假如太麻烦那就统共算一条吧。毕竟数据量太大了,平均一个文件都有 10000 行左右。
|
11
fishspecial OP @ys0290 我过几个月估计就调回去了。不过这不是在公司跟资本家做事,打击犯罪分子的话,做起来肯定是会当自己的事情去处理的,毕竟也的确是自己的工作任务。(当然自己技术实在有限哈哈哈)
|
12
fishspecial OP @calmzhu 我怕出 memoryerror,而且这么长时间没接触代码了,数据结构和算法都忘的一干二净。今天写了一个很简单的 demo 对相同文件进行去重后,统计所有 excel 的行数,最后算来有一亿多条,这还是跑到 14000 千个文件左右就爆出 memoryerror 的情况之下。实在是数据量太大了。现在就想有 v2 能帮助下,有大概的代码改改我就可以解决问题就好。
|
14
fishspecial OP @EscYezi 应该是爆内存了...可能优化之后能行?我技术实在太菜了 /无奈
|
15
fishspecial OP @calmzhu 是的,txt 转为 excel 文件是可行的,但是 excel 无法直接转成文本格式
|
16
binux 2020-08-21 00:27:14 +08:00 via Android 1
分两步
1. 提取出电话,一行一个输出 txt 。直接单元格正则就 OK 了。 2. sort -u |
17
waytoshine 2020-08-21 00:28:52 +08:00 1
很好解决的问题啊,最笨的办法,你不是说内存会爆,你就把所有 Excel 多分几堆,一堆放一个文件夹,然后 Python 肯定有操作 Excel 文件的库啊,用那个库,把所有的 Excel 的文字提取出来放在 txt 里,放 txt 的时候用逗号或者分号分隔,然后再用正则去匹配手机号,然后插入数据库里,完事处理完所有 Excel 的数据之后,再用 Python 操作数据库,把正则匹配到的手机号插入数据库一个表,然后 select distinct phonenumer from telephone,整个流程都不需要什么高深的技术,就很顺其自然的要这么做
|
18
manhere 2020-08-21 00:33:15 +08:00 via Android
没必要去重,以行数计就行。
|
19
clrss 2020-08-21 00:34:05 +08:00
库么听说过 xlwing, 没实际用过.
|
20
fishspecial OP @waytoshine 谢谢指点!过程我能理解,但是代码上还是觉得困难了点…唉
|
21
fishspecial OP @binux 谢谢指点!老哥可以点一下相关的操作函数吗?
|
22
ys0290 2020-08-21 00:44:36 +08:00 via iPhone
感觉是简单问题碰上了大量数据,如果按手机号码前三位来存到不同文件,对每个文件单独去重,会不会速度快一点,而且不同文件不会有重复
|
23
caola 2020-08-21 00:47:35 +08:00 1
直接转为 csv 格式,然后直接读取 csv
|
24
Juszoe 2020-08-21 00:52:28 +08:00 via Android 1
支持民警,学生党没事做,可以帮忙写代码,也算是做点贡献(不嫌弃的话)
|
25
inframe 2020-08-21 00:53:11 +08:00 1
1 亿条每行 100 字节 大概占用内存 9 个 gb,导到数据库的话就一句 SELECT DISTINCT count(id) from table...统计完毕
操作上估计还是数据的格式化比较麻烦一点 |
26
also24 2020-08-21 00:55:10 +08:00 2
提供一个简单粗暴的思路(不是最优解,但胜在方便)
遍历每一个文件,针对每个文件,执行下面的操作: 第一步,使用 xlrd 可以遍历所有单元格 ,大致代码类似 wb = xlrd.open_workbook("test_w.xls") for sh in wb.sheets(): for r in range(sh.nrows): for c in range(sh.ncols): cell = sh.cell_value(r, c) 第二步,使用正则判断单元格是否匹配手机号规则 第三步,如果匹配,就写入与 xls 同文件名的 txt 文件中 经过以上步骤,你应该已经获得了未经去重的所有手机号,接下来直接使用 bash 下的 sort | uniq 进行去重即可。 命令类似于 cat *.txt | sort | uniq > res.txt |
27
yzkcy 2020-08-21 00:57:43 +08:00 1
看你说的意思是以一个独立的手机号为一条个人信息计算么?也就是说只要统计出总手机号条数(去重后)就行了吧。
非程序员且编程渣,想的流程如下: 1.获取当前文件夹下所有文件名,存入列表 2.遍历列表,打开每个文件名的文件 3.正则判断该文件第一行第一列是否为手机号,否-》就判断第一行第二列-》否-》判断第一行第三列,以此类推,找到存手机号的那一列 4.获取存手机号的那一列的每一行的手机号,追加到某文件 然后每个存 excel 数据的目录都运行一遍脚本。(嫌麻烦的话,就上面的步骤再套一层,优化为当前目录下存在文件夹就自动遍历子目录。或者你把所有 excel 拷到一个目录下也成) 最后把每个目录生成的手机号的文件汇总,然后去重(推荐使用 EmEditor,编辑大文本、去重干嘛的都很好用) |
28
T0m008 2020-08-21 01:32:33 +08:00
这么多数据的,可以读了写进数据库,唯一键设好自动去重了,也不用担心内存问题了。
这么多数据是传销案么? |
29
crab 2020-08-21 01:41:31 +08:00
导出 csv,正则提取出手机号码,再过滤。
|
30
Wait845 2020-08-21 01:42:58 +08:00 1
确实,这么大的数据存到数据库效率应该会高一些。楼主可以留个联系方式
|
31
nuk 2020-08-21 01:49:15 +08:00
老哥不用去重啊,直接保存 gdbm 就行,python 不是自带么
一亿记录小 case 啦,目测最多两个小时就可以,无非就是花时间而已。 |
32
nuk 2020-08-21 01:51:12 +08:00
另外提醒一下,sort 那个肯定不行的,内存会爆
|
33
HongJay 2020-08-21 01:51:44 +08:00 1
不懂帮顶
|
34
MCVector 2020-08-21 02:24:04 +08:00 via Android
用 pandas 应该可以直接读 excel.
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_excel.html 如果只是统计条数的话把所有电话号码插入到一个 set 里然后统计里面的元素个数就行了。set 是可以自动去除重复的元素的。 |
35
calmzhu 2020-08-21 02:31:33 +08:00 1
迫于买不起 excel 。。用 wps 测了一下。格式应该一样的,可以参考,
然后发现是老乡啊。更要支持一下 试一下这段代码( gist 需翻墙) https://gist.github.com/calmzhu/0a93716db202df95366f47f1beef50c9 这段代码的功能是 1.对当前目录所有后缀为 xls/xlsx 的文件做 md5 检查。然后获得一个去重的文件名列表 2.对于所获得的列表中的每一个 excel 。遍历第一张 sheet 的所有 cell.然后用正则去检查这个 cell 里面的内容是不是刚好 11 位纯数字并且第一为数字为 1.如果是则存入列表。 (因为单个文件不会很大。所以直接放内存了。存入列表后) 单个 excel 遍历完成之后,对列表先去一次重,然后追加写入到 phone_records.txt 文件 3. 继续遍历下一个 excel 。 这样当前目录的所有 excel 里面的电话号码都提取到 phone_records.txt 文件里面了。再去重就好处理了。 然后文件还挺多的。如果比较慢,可以文件分以下每个电脑放一点。然后再用现在的逻辑处理。最后汇总成一个大的 txt. 单个或若干全是电话号码的 txt 去重就比较好处理了。 |
36
calmzhu 2020-08-21 02:35:33 +08:00
@calmzhu
比较坑的一点要注意的是,excel 里面电话号码我用 xlrd 导入到 python 变成了浮点类型。所以要用 cell 的 ctype 判断一下。 然后你要用 excel 测一下 excel 有的数字变成 1.123131E +10 这种表士了在 python 里面导出的值 |
37
noqwerty 2020-08-21 02:40:18 +08:00
@calmzhu #35 我的思路跟你类似,不太清楚楼上挺多人为啥不直接用 set 去重。另外如果楼主的 Excel 文件格式都相对规范的话可以用 pandas 直接读取,然后对每一列直接 col.str.contains("1\d{10}") 或者用 apply 函数去处理,这些向量化的函数会比一个单元格一个单元格那样速度快很多。
|
38
594duck 2020-08-21 02:41:37 +08:00 via iPhone 1
一个 access 就可以干完的活搞这么复杂
|
39
calmzhu 2020-08-21 02:44:40 +08:00
然后刚才差了下,Excel 其实是 zip 将多个 xml 打包的格式。
所以如果有 linux 环境的化。批量解压缩成 xml 直接 grep 正则估计会很方便。。 |
40
calmzhu 2020-08-21 02:50:26 +08:00 1
@noqwerty
嗯,这个需求算简单,思路应该基本都有共识,不过迫于楼主是我老乡想要点参考代码所以写了一个~ pandas 到不知道。搜了一下 python excel 处理的第一个例子是 xlrd 就用 xlrd 了。 然后应该不是不知道用 set 去重。而是 Excel 量过多+ excel 格式不统一,拿数据的时候被绕进去了。 |
41
guoyida 2020-08-21 05:54:19 +08:00 via iPhone 1
可以用 powerbi 做,应该很快,图形化界面不涉及编程
|
42
binux 2020-08-21 05:54:56 +08:00
|
43
pocketmiddle 2020-08-21 07:19:37 +08:00 via iPhone
我不会 python 。但感觉这事不需要 py,vba 就能搞定了。
|
44
ShuoHui 2020-08-21 07:38:55 +08:00 via iPhone
jz 还是 wa 啊
|
45
cfwyy 2020-08-21 08:25:54 +08:00
只需要 统计 手机号条数就可以?
python 也不敢说是老手,我的基本思路是: 正则表达式 匹配出手机号,add 到集合 set 中,set 会自动去重; 单进程跑 19K 个文件太慢的话,可能还要用多进程来跑。 手上没有文件也不能测试,仅供参考。 |
46
huanghaozi 2020-08-21 08:33:28 +08:00 via Android 1
已经搞出整合的 Excel 的话,统计次数可以用数据透视表鸭(但不清楚这么多数据会不会卡死)
|
47
xinghen57 2020-08-21 08:44:46 +08:00 via iPhone
数据库吧,这数据量对 excel 太大了。
|
48
xinghen57 2020-08-21 08:51:54 +08:00 via iPhone 2
再提供个思路:
xlxs -> csv -> 合并 -> 去重 每个环节都有现成软件,百度一下就行 |
49
frdspro 2020-08-21 09:02:07 +08:00 via Android
感觉表格的格式很乱,并且表格里的内容也很乱,大大小小啥样的都有⁽˙³˙⁾
|
50
funcookies 2020-08-21 09:07:36 +08:00 via iPhone 1
感觉要的是现成的代码啊。话说楼主有啥进展吗,对运行时间,还有最终生成的数据有啥要求吗。还需要做吗。
|
51
swsh007 2020-08-21 09:08:09 +08:00 via Android
遍历一圈 2w 个文件,
然后写到 10 个文件里 去重 python 或者 db 都可以 估计有 2 天咋都完了 要是人工就太折腾 |
52
sadfQED2 2020-08-21 09:24:10 +08:00 via Android
Python 遍历所有文件所有行,通过正则把手机号匹配出来
|
54
xingyuc 2020-08-21 09:31:58 +08:00 2
首先证明你这些内容不是用作黑产
|
55
nightv2 2020-08-21 09:51:48 +08:00 via Android 1
搜了一下 知乎有个文章“小工具--Excel 批量转 csv”,用 VBA 转换为文本后就有很多方法来处理了
|
58
xcheng 2020-08-21 10:11:44 +08:00
用 C#做过 EXCEL 数据遍历统计,你这个数据量有些多,提取后用数据库来处理会更方便(例如以后要统计其它数据)。
有需要可留个联系方式 |
59
winterbells 2020-08-21 10:13:58 +08:00 via Android
手机号读出来,每 1w 个分成一个文件
之后挨个文件内去重 再两两文件比对去重 之后合并或者直接加总数 |
61
Mithril 2020-08-21 10:35:14 +08:00
直接批量转成 CSV 然后 grep + sort 就完了。。
用不着写代码啊。。。 |
63
fuchunliu 2020-08-21 10:48:48 +08:00 via Android
表格稍微修改一下,导入数据库,就可以直接去重了,而且也不存在内存不够的问题了
|
65
funcookies 2020-08-21 11:08:51 +08:00 via iPhone 1
@xingyuc 搞 hc 的这点技术还是有的,况且只要能搞,下游就有人清洗这些数据。楼主这样的看起来不大像
|
67
laydown 2020-08-21 11:58:03 +08:00 via iPhone 2
万一是黑产,楼上各个“帮忙”的都有责任。
|
68
dhkjenfbfu 2020-08-21 12:10:55 +08:00 1
@efaun 法学界不是早就有结论,因为没有司法责任制度,然后 15 年的时候就补上了啊,虽然实际执行还没什么力度。
|
69
CoCoMcRee 2020-08-21 12:34:26 +08:00
南京千奇晨宇
军理工博士带队, 长期接活, 欢迎合作 vx: 18505101236 |
70
fishspecial OP @Juszoe 怎么可能嫌弃呢?很欢迎你的帮助!
@inframe 是的,尤其是这次 excel 没有统一的格式,导入数据库正则手机号数据超过了我的技术范围了。 @also24 谢谢你的代码!我今晚下班后试试! @yzkcy 谢谢你的思路! @T0m008 侵犯公民信息,主要是股市和房产的。 @Wait845 谢谢不吝赐教!我的小绿 V2ViX1NhbXVyYWk= @calmzhu 不好意思才回复你,我的小绿 V2ViX1NhbXVyYWk= 白天上班没有时间回复消息。谢谢老乡的帮忙,武汉欢迎你!我一定接待。 @guoyida 我晚上看看这个软件,谢谢! @huanghaozi 已经卡死了,而且导出的整合 excel 只有文件名和该文件的总行数两列数据 @funcookies 十分需要!晚上我试试其他热心 v 友的代码,运行时间肯定希望尽量在一天以内,时间长了怕电脑崩溃。 @nightv2 好的 我这就去搜一下这篇文章,谢谢! @dhkjenfbfu 感谢你的专业回答!这些回复我一般不怎么理的。谢谢可爱的 v 友 |
71
waytoshine 2020-08-21 12:49:27 +08:00 1
@CoCoMcRee #69 人家小民警自己加班解决问题,也说了自己单位小,不会有预算请人来外包,楼上都是热心真想帮忙解决问题的发了那么多楼,你这冷不丁来打个广告,就你这阅读理解能力和情商,还什么博士,虚头巴脑的,真是笑了。
|
72
NonClockworkChen 2020-08-21 13:36:40 +08:00
为什么有人会怀疑黑产,有能力做黑产的,怎么可能连做这事情的成本都付不出。
|
73
ZSeptember 2020-08-21 13:41:19 +08:00
可以系统学习下 python,感觉会对以后的工作也会很有帮助。
|
74
nznd 2020-08-21 14:17:17 +08:00
大概试了一下,直接用 set 完全能存下的,用 permutations 生成了 1 亿条长度为 12 的数字 (首位 1 不存了) 不过我猜测老哥的 MemoryError 是因为电脑内存不够 并不是因为 python 的性能问题(毕竟吃了大概 18g 左右内存...
https://washingpatrick.cn/wp-content/uploads/2020/08/memory.png 我的目前想法是,先写一个脚本 读取当前目录下所有 excel 文件,正则取出电话号码,并且去掉首位 1,然后存到一个 csv,内存不够可以分批跑脚本,每次控制 excel 的个数就行,最后把所有 csv 再放到一个文件夹,然后写第二个脚本,读取所有 csv,并且用 set() 去重,如果老哥觉得可行 并且需要帮助我可以周末尝试摸一个出来 x |
75
7654 2020-08-21 14:31:49 +08:00
office 有个 power query 数据源可以是目录,查询合并成一个 excel 这个很简单
接着配合 Access,直接查询去重,导出结果 没有代码能力要求,这样每个人都会操作 |
76
XiaoBaiYa 2020-08-21 14:38:56 +08:00
@NonClockworkChen 是的,做黑产的平时看起来和正常公司无异,产品,测试,开发,设计,应有尽有
|
77
Mithril 2020-08-21 14:43:57 +08:00
@fishspecial 个人认为你这个思路是有些问题的。你的目标是“解决问题”,而不是“用程序解决问题”。
对于这种一次性需求来说,我认为更好的办法是程序加人工操作。比如你觉得 19K 文件人工处理麻烦,但是能一次性处理 19K 文件对于程序来说需要大量内存和性能消耗,所以可能要用数据库等办法去解决。这只是一个思路,如果你的程序以后会被重用的话,当然用这个办法会很好。 但我认为大概率你这需求以后也不一定有,那么更好的办法是你写个一次能处理 1K 文件的程序,然后人工重复 19 次。这样程序写起来很容易,人工操作也不是特别麻烦。 所以我的建议是直接全转成 CSV,然后系统内置的正则加上去重命令解决。虽然没办法一次处理所有文件,但是手工分几次处理完再合并去重一次就行了。 远比你写完并调试好一个很复杂的程序再双击运行花的时间短。 |
78
27 2020-08-21 14:48:13 +08:00 via iPhone
pandas 或者 xlrd 读取转成 csv 输出,直接 awk+grep 正则,再接个去重就可以。预计两小时工作量,不过我想愿意给 lz 帮忙的人应该已经很多了
|
79
27 2020-08-21 14:53:14 +08:00 via iPhone
去重可以用 awk 'a[$1]++' ,比 sort | uniq 快很多
|
80
Leee 2020-08-21 14:53:23 +08:00
哇,民警也有这类工作的话,我想去做诶。。
另外,加油!!! |
81
ilunny 2020-08-21 14:53:45 +08:00
写个遍历文件的类都花了些时间,希望有点帮助。。
https://pastebin.com/ibCp6hgX |
82
NeezerGu 2020-08-21 15:41:33 +08:00
突然好奇民警招数据分析师吗
|
83
Juszoe 2020-08-21 15:52:14 +08:00
@fishspecial #70 啊这,好多大佬出手了,好像没我帮忙的必要了,有需要随时联系我
|
84
janxin 2020-08-21 15:54:37 +08:00
去重复看纬度,根据你目前的情况就是根据手机号 /身份证对应到具体人即可。
这样可以使用 pandas 或者其他 excel 读取库读取数据,遍历读取、存储唯一结果即可。 |
86
ty89 2020-08-21 16:00:35 +08:00
首先用正则把手机号匹配出来,然后输出到文本文件,每行一个。 最后用 ilnux 自带的 uniq 就可以去重
|
87
fhsan 2020-08-21 16:06:38 +08:00
纯数据,当然 pandas+数据库,反正 xlsx 挺坑的,
|
88
kemistep 2020-08-21 16:12:58 +08:00
民警招数据分析师,5 年经验了,可以应聘嘛;
这个的答案是: def 遍历文件; def 使用 pandas 读取 excel 文件,加载到内存中; def 使用 apply 对每一列数据遍历,判定是否为手机号; 这个就直接用是否是 11 位判定; def 将处理后的数据 和 表名 存入到 mysql 数据库,便于后续核对;(也可以不用) def 对手机号去重统计; |
89
xuewuchen 2020-08-21 16:18:42 +08:00
所有的 EXCEL 格式是否是相同的? 如果是相同的就好办了很多
1.遍历所有 EXCEL 文件,将 EXCEL 文件的所有行列读入内存 2.读入的时候就可以根据规则进行去重操作,比如名称一样的,手机号一样的之类 3.读取完成后直接显示到外部界面表格 4.支持将表格导出到 EXCEL 表 其实用 C#,JAVA 之类的,如果是格式相同的 EXCEL 应该很快就能做出来,python 很长时间不玩了忘的差不多了。 |
90
okonogi 2020-08-21 16:58:15 +08:00
提取手机号后的操作可以用上位运算的技巧呀。末 10 位当成数字,用单个 bit 置 1 表示手机号。末 10 位最多 10^10-1 bit 的数据,不超过 1.17GB,堆分配个这么多空间,然后得到 1 个手机号就对对应 bit 置 1 。全部处理完后就是数有几个置 1 的 bit 。这样处理内存压力应该就少很多了。
|
91
ilunny 2020-08-21 17:09:50 +08:00
需要先 pip install openpyxl
用 openpyxl 读取 xlsx 文件,然后把号码放入数据库,最后读取号码数量。。 试了下内存占用不多,可能处理时间会有点慢?半小时?数据库文件大小估计有 1 个多 G: https://pastebin.com/3V5E5s1a |
92
vandort 2020-08-21 17:18:51 +08:00
你要不飞 Q 传给我吧,我在你们省厅有个工位,公安网视频网都能连
|
93
ExplorerLog 2020-08-21 17:21:17 +08:00
xlsx 格式可以解压,解压后 xl 文件夹下有个 shareStrings.xml xm 字段正则匹配一下
|
94
lysS 2020-08-21 17:42:37 +08:00
@PublicUser 外包这些数据二次泄露了咋办?
|
95
CrazyMoon 2020-08-21 17:58:56 +08:00
1,正则匹配出手机号
2,把手机号按号码段提取到不同的文本文件里 3,依次对各个文本文件做去重处理 4,合并、统计 ----- 个人的想法。。 |
96
encro 2020-08-21 18:15:26 +08:00
for f in files:
for s in sheets: for row in rows: for col in row: get_mobile_from_col save_mobile_to_file get_unique_mobile_from_file |
97
encro 2020-08-21 18:16:42 +08:00
pandas 的话直接更方便点,但是学习要时间啊
|
99
meiya6duxh 2020-08-21 20:23:19 +08:00
你好,我这边愿意免费帮你处理这个问题
如果有需要请联系我 微信 Thanatos-XH |
100
Liyiw 2020-08-21 20:24:36 +08:00
转成 csv,然后 pandas 一把梭
|