鱼C论坛

 找回密码
 立即注册
查看: 1215|回复: 6

[已解决]冠子码重复比对

[复制链接]
发表于 2020-8-13 14:16:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
想写一个冠子码重复比对小程序,没找到方法,有没有大佬帮忙解答一下
就是日志文件中会有冠子码信息,找出文件中的冠子码进行比对,每条数据中冠子码最多100个,最少是1个,重复的冠子码提取出来并显示该冠子码出现的时间,谢谢

[2020-08-10 07:43:29][/sdcard/XZ_Pay/Log/][1431]存款机芯指令 CIM_Deposit1:0_amount:1900_countingInfo:100 Q3F8083944&100 C2H5409075&100 C3E2991861&100 RZ42419012&100 MU61551184&100 D2Z9849930&100 Y4A2512722&100 Y4A8351496&100 KJ81567026&100 S9H6874889&100 MT24766465&100 B4E7805979&100 RZ22197118&100 UC41823025&100 NL39405162&100 PT68100371&100 A60D881289&100 ----------&100 NL20381806

[2020-08-10 07:43:57][/sdcard/XZ_Pay/Log/][1431]存款机芯指令 CIM_Deposit1:0_amount:2000_countingInfo:100 MU13798297&100 R9K1243213&100 C8G3358996&100 B0W4827025&100 WJ93326806&100 C4G4469999&100 G1N0228549&100 BL00634427&100 KA31087527&100 GG17260906&100 PU07845093&100 CG80464711&100 SG56041584&100 BZ05442585&100 EP00137567&100 EP00137568&100 EP00137569&100 NK01460852&100 NK01460851&100 KL89510249

[2020-08-10 07:45:55][/sdcard/XZ_Pay/Log/][1431]存款机芯指令 CIM_Deposit1:-5998_amount:2350_countingInfo:100 H9H3787563&100 MQ35621784&100 DZ40172378&100 PA75929314&100 LZ19548469&100 B6S7396772&100 B6S7396779&100 B6S7396774&100 RY09971353&100 SX16757158&100 NK31593163&100 F7C0435331&100 LY07962480&100 KN96430993&100 Z1P4793576&100 R32R076783&100 MQ30887355&100 HN59631630&100 YW10472672&100 UB29933383&100 Q1W6122698&100 E4S4963715& 50 RY27127800& 50 ZZ19962894& 50 ZT96015036

[2020-08-10 12:04:03][/sdcard/XZ_Pay/Log/][1431]存款机芯指令 CIM_Deposit1:0_amount:6300_countingInfo:100 F1H6406114&100 RY49201669&100 C1C9010607&100 NH98992853&100 R13R455483&100 Q2F1305710&100 C48Y122858&100 D16F432848&100 OQ92484666&100 H1S5351512&100 TG30290333&100 UC72740444&100 B85G439151&100 LJ14528985&100 W2P2494711&100 YB67392466&100 C8J9223162&100 ZS46502380&100 P3D3379352&100 F1H6406112&100 F1H6406111&100 KL15410966&100 UC94912274&100 Q8F9086681&100 NN15035955&100 J9B9910714&100 Q7D6438088&100 KL10053493&100 R98Q011621&100 PJ79169862&100 W4D2206770&100 YJ41770140&100 DE87013442&100 S1D3647269&100 N11W266076&100 RY71022314&100 NM74324965&100 D66S125680&100 QX08357167&100 PW34192470&100 H0Q0656785&100 DB87703139&100 Q6A4843745&100 BF92813990&100 G3Q5527871&100 Q2B4440591&100 EK40906881&100 UP00455729&100 NK19194466&100 JZ09566683&100 U4K0925665&100 BP16919474&100 HL26038607&100 E0P2635279&100 EP02178809&100 EP48474427& 50 RT34693825&100 GU04240403&100 RY07833996& 50 WY29677864& 50 QB32426262&100 X52P944159& 50 QQ57601424&100 G3Q5527873&100 XN89985111
最佳答案
2020-8-13 16:32:50
xiangya 发表于 2020-8-13 15:10
上传不了图片
我尽量描述清楚一点 ,希望大佬能听懂
文本文件中存在这样的数据, ...

import re
s1 = '[2020-08-10 15:39:54][/sdcard/XZ_Pay/Log/][1410]存款机芯指令 CIM_Deposit1:0_amount:2000_countingInfo:100 KL75652418&100 E6S9549928&100 MR02222661&100 F1H6406114& 50 RY23212014&100 CK78501286&100 UM02606526&100 B26R384248&100 MT24254172&100 E8Q2689387&100 Q4F1943476&100 KJ29198589&100 ES52825575&100 BL32258602&100 Z9Z5397319& 50 ZZ16997063& 50 RY25753241& 50 QP20289259& 50 TP99731738& 50 AJ50529175& 50 AJ50529176& 50 AJ50529184& 50 WW70182203& 50 ZU05399582& 50 AJ50529173& 50 ZZ18675992'
l1 = s1.split('countingInfo:100')
s2 = str(l1[1])
print(s2)
p = r'.{10}&'
a1 = re.findall(p,s2)
print(a1)

ss1 ='[2020-08-10 12:04:03][/sdcard/XZ_Pay/Log/][1431]存款机芯指令 CIM_Deposit1:0_amount:6300_countingInfo:100 F1H6406114&100 RY49201669&100 C1C9010607&100 NH98992853&100 R13R455483&100 Q2F1305710&100 C48Y122858&100 D16F432848&100 OQ92484666&100 H1S5351512&100 TG30290333&100 UC72740444&100 B85G439151&100 LJ14528985&100 W2P2494711&100 YB67392466&100 C8J9223162&100 ZS46502380&100 P3D3379352&100 F1H6406112&100 F1H6406111&100 KL15410966&100 UC94912274&100 Q8F9086681&100 NN15035955&100 J9B9910714&100 Q7D6438088&100 KL10053493&100 R98Q011621&100 PJ79169862&100 W4D2206770&100 YJ41770140&100 DE87013442&100 S1D3647269&100 N11W266076&100 RY71022314&100 NM74324965&100 D66S125680&100 QX08357167&100 PW34192470&100 H0Q0656785&100 DB87703139&100 Q6A4843745&100 BF92813990&100 G3Q5527871&100 Q2B4440591&100 EK40906881&100 UP00455729&100 NK19194466&100 JZ09566683&100 U4K0925665&100 BP16919474&100 HL26038607&100 E0P2635279&100 EP02178809&100 EP48474427& 50 RT34693825&100 GU04240403&100 RY07833996& 50 WY29677864& 50 QB32426262&100 X52P944159& 50 QQ57601424&100 G3Q5527873&100 XN89985111'
ll1 = ss1.split('countingInfo:100')
ss2 = str(ll1[1])
print(ss2)
p = r'.{10}&'
aa1 = re.findall(p,ss2)
print(aa1)
print('--------------------')
for each in aa1:
    if each in a1:
        print(each)
大概写了一个,两组之间的找重复。
存在多组的话可以把你说的冠子码和时间作拼接在一起作为唯一值放入空列表,最后列表内循环取冠子码那段去找重复项输出结果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-13 14:33:54 | 显示全部楼层
详细说一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-13 15:10:04 | 显示全部楼层

上传不了图片
我尽量描述清楚一点 ,希望大佬能听懂
文本文件中存在这样的数据,如下面这条,你看最后100后面  类似于 TL05307411   这就是冠子码,冠子码固定的都是10位
[2020-08-10 15:34:31][/sdcard/XZ_Pay/Log/][1410]存款机芯指令 CIM_Deposit1:0_amount:2100_countingInfo:100 KN84448257&100 H3Q4167903&100 P6R2921827&100 S94B453083&100 E5P7901393&100 UA10725169&100 ZN36120226&100 YC47409859&100 NC02097047&100 S98Q143917&100 SY78717610&100 B7W5521751&100 F7C8470039&100 W17D580183&100 D4Z4254760&100 Q2A4922465&100 RY03297109&100 B0W0465993&100 X48F735195&100 G32C514601&100 TL05307411

文件中存在很多这种数据,每条数据的长度是不固定的,但最多不会超过100个冠子码,要在这些冠子码数据中找出相同的标记出来

比如下面几条,第2条数据的 第4个冠子码和第3条数据的第一个冠子码是一样的 F1H6406114
[2020-08-10 15:37:06][/sdcard/XZ_Pay/Log/][1410]存款机芯指令 CIM_Deposit1:-5996_amount:1800_countingInfo:100 KL24612003&100 GK08257421&100 E1D8079533&100 Q3F4228597&100 W00W663167&100 ES11938182&100 KJ00949779&100 ET81970095&100 D4U7405464&100 KA43259331&100 G7P0437758&100 WU32774085&100 KJ84410055&100 R1U8674220&100 B5W9843575&100 AX89546089&100 RR92008916&100 AR39147925

[2020-08-10 15:39:54][/sdcard/XZ_Pay/Log/][1410]存款机芯指令 CIM_Deposit1:0_amount:2000_countingInfo:100 KL75652418&100 E6S9549928&100 MR02222661&100 F1H6406114& 50 RY23212014&100 CK78501286&100 UM02606526&100 B26R384248&100 MT24254172&100 E8Q2689387&100 Q4F1943476&100 KJ29198589&100 ES52825575&100 BL32258602&100 Z9Z5397319& 50 ZZ16997063& 50 RY25753241& 50 QP20289259& 50 TP99731738& 50 AJ50529175& 50 AJ50529176& 50 AJ50529184& 50 WW70182203& 50 ZU05399582& 50 AJ50529173& 50 ZZ18675992

[2020-08-10 12:04:03][/sdcard/XZ_Pay/Log/][1431]存款机芯指令 CIM_Deposit1:0_amount:6300_countingInfo:100 F1H6406114&100 RY49201669&100 C1C9010607&100 NH98992853&100 R13R455483&100 Q2F1305710&100 C48Y122858&100 D16F432848&100 OQ92484666&100 H1S5351512&100 TG30290333&100 UC72740444&100 B85G439151&100 LJ14528985&100 W2P2494711&100 YB67392466&100 C8J9223162&100 ZS46502380&100 P3D3379352&100 F1H6406112&100 F1H6406111&100 KL15410966&100 UC94912274&100 Q8F9086681&100 NN15035955&100 J9B9910714&100 Q7D6438088&100 KL10053493&100 R98Q011621&100 PJ79169862&100 W4D2206770&100 YJ41770140&100 DE87013442&100 S1D3647269&100 N11W266076&100 RY71022314&100 NM74324965&100 D66S125680&100 QX08357167&100 PW34192470&100 H0Q0656785&100 DB87703139&100 Q6A4843745&100 BF92813990&100 G3Q5527871&100 Q2B4440591&100 EK40906881&100 UP00455729&100 NK19194466&100 JZ09566683&100 U4K0925665&100 BP16919474&100 HL26038607&100 E0P2635279&100 EP02178809&100 EP48474427& 50 RT34693825&100 GU04240403&100 RY07833996& 50 WY29677864& 50 QB32426262&100 X52P944159& 50 QQ57601424&100 G3Q5527873&100 XN89985111
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-13 15:33:00 | 显示全部楼层
xiangya 发表于 2020-8-13 15:10
上传不了图片
我尽量描述清楚一点 ,希望大佬能听懂
文本文件中存在这样的数据, ...

标记出来是怎么个意思?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-13 15:41:54 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-8-13 15:33
标记出来是怎么个意思?

或者说打印出来就行,  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-13 16:32:50 | 显示全部楼层    本楼为最佳答案   
xiangya 发表于 2020-8-13 15:10
上传不了图片
我尽量描述清楚一点 ,希望大佬能听懂
文本文件中存在这样的数据, ...

import re
s1 = '[2020-08-10 15:39:54][/sdcard/XZ_Pay/Log/][1410]存款机芯指令 CIM_Deposit1:0_amount:2000_countingInfo:100 KL75652418&100 E6S9549928&100 MR02222661&100 F1H6406114& 50 RY23212014&100 CK78501286&100 UM02606526&100 B26R384248&100 MT24254172&100 E8Q2689387&100 Q4F1943476&100 KJ29198589&100 ES52825575&100 BL32258602&100 Z9Z5397319& 50 ZZ16997063& 50 RY25753241& 50 QP20289259& 50 TP99731738& 50 AJ50529175& 50 AJ50529176& 50 AJ50529184& 50 WW70182203& 50 ZU05399582& 50 AJ50529173& 50 ZZ18675992'
l1 = s1.split('countingInfo:100')
s2 = str(l1[1])
print(s2)
p = r'.{10}&'
a1 = re.findall(p,s2)
print(a1)

ss1 ='[2020-08-10 12:04:03][/sdcard/XZ_Pay/Log/][1431]存款机芯指令 CIM_Deposit1:0_amount:6300_countingInfo:100 F1H6406114&100 RY49201669&100 C1C9010607&100 NH98992853&100 R13R455483&100 Q2F1305710&100 C48Y122858&100 D16F432848&100 OQ92484666&100 H1S5351512&100 TG30290333&100 UC72740444&100 B85G439151&100 LJ14528985&100 W2P2494711&100 YB67392466&100 C8J9223162&100 ZS46502380&100 P3D3379352&100 F1H6406112&100 F1H6406111&100 KL15410966&100 UC94912274&100 Q8F9086681&100 NN15035955&100 J9B9910714&100 Q7D6438088&100 KL10053493&100 R98Q011621&100 PJ79169862&100 W4D2206770&100 YJ41770140&100 DE87013442&100 S1D3647269&100 N11W266076&100 RY71022314&100 NM74324965&100 D66S125680&100 QX08357167&100 PW34192470&100 H0Q0656785&100 DB87703139&100 Q6A4843745&100 BF92813990&100 G3Q5527871&100 Q2B4440591&100 EK40906881&100 UP00455729&100 NK19194466&100 JZ09566683&100 U4K0925665&100 BP16919474&100 HL26038607&100 E0P2635279&100 EP02178809&100 EP48474427& 50 RT34693825&100 GU04240403&100 RY07833996& 50 WY29677864& 50 QB32426262&100 X52P944159& 50 QQ57601424&100 G3Q5527873&100 XN89985111'
ll1 = ss1.split('countingInfo:100')
ss2 = str(ll1[1])
print(ss2)
p = r'.{10}&'
aa1 = re.findall(p,ss2)
print(aa1)
print('--------------------')
for each in aa1:
    if each in a1:
        print(each)
大概写了一个,两组之间的找重复。
存在多组的话可以把你说的冠子码和时间作拼接在一起作为唯一值放入空列表,最后列表内循环取冠子码那段去找重复项输出结果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-13 17:20:18 | 显示全部楼层
xiangya 发表于 2020-8-13 15:41
或者说打印出来就行,

说实话我上面那段都没看懂...........
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-19 11:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表