分享好友 最新动态首页 最新动态分类 切换频道
Python解析纯文本生成HTML
2024-12-26 10:09
python根据需求完成一个TXT解析器的简单开发 一 修改说明: 需求一: 一开始说要解析UECapabilityInfo 消息里的supportedBandCombination-r10 这个IE里的CA组合转化成易阅读的表现形式. 我以为一组CA组合就是一组: bandEUTRA-r10 ca-BandwidthClassUL-r10 ca-BandwidthClassDL-r10 supportedMIMO-CapabilityDL-r10 功能实现: 有效信息筛选:于是就用循环把UECapabilityInformation的数据里每一行作为一个元素放到list里面 然后用bandEUTRA-r10作为一组CA的识别信息、在筛选出同组ca-BandwidthClassUL-r10、ca-BandwidthClassDL-r10、supportedMIMO-CapabilityDL-r10的信息,添加保存到字符串中,然后再把字符串作为元素添加到list中去。最后遍历list的元素写入目标文件 需求二: 然后收到反馈CA组合的理解是错误的。一组CA组合应该是以大括号作为识别的,里面可能包含多组: bandEUTRA-r10: ca-BandwidthClassUL-r10 ca-BandwidthClassDL-r10 supportedMIMO-CapabilityDL-r10 CA组合识别原理:在查看UECapabilityInformation内的CA组合后 发现CA组合内第一个 bandEUTRA-r10因为比其他bandEUTRA-r10多了一层的CA组合的大括号,所以如果给每一行增加索引的话就会发现除了第一个bandEUTRA-r10,其他bandEUTRA-r10到上一个supportedMIMO-CapabilityDL-r10的距离都是一样的,为了减少复杂度,我删除了所有’{’,这样所有除了所有CA组合第一个bandEUTRA-r10往上第四行是’}’其他bandEUTRA-r10的往上第四行都是supportedMIMO-CapabilityDL-r10 功能实现: 添加索引:便利时用了for enumerate()循环,这样便利时可以在循环时,自动为每个元素生成索引 CA组合识别:在识别到bandEUTRA-r10时,增加一个判断if datalist1[index-4].startswith(),如果bandEUTRA-r10的往上第四行是supportedMIMO-CapabilityDL-r10说明同组CA未结束,把筛选的有效信息强制类型转换后添加在上个元素末尾,反之则说明是个新的CA组合,往列表里添加一个新的元素。 需求三: 之后收到反馈CA组合虽然识别了,但是排序不行,需要按照CA组合支持的band进行排序 功能实现: 排序:于是我在识别完CA组合后,增加了一个循环和count(),用CA组合里的’-’给它们归类 比如1AA,11A,21AA是一类;1A-1A,2A-1AA,3A-1A是一类 在用一个中间变量保存开头的band的数字,一个类中把开头支持band的数字字母相同的CA组合归为一行 比如1A-21A,1A-22A一类1AA-2AA 1AA-3AA为一类 需求四: 之后收到反馈,CA组合分类不能只按照开头比较分类,不然一但数据多了会对查阅带来极大不便,应该按照每组CA组合中bandEUTRA-r10的值进行判断,比如1AA-2AA,1A-2AA和1AA-2A应该归在同一行 实现原理:首先我想的是按位比较数字,但是因为字母的数量不稳定,数字的位置不一定对应,然后我就想把数字全部提取出来作为索引,在相应的索引后面添加同组元素,用dict来实现排序。难点就在于从字符串中提取数字。后来在python的正则表达式中找到相关的处理函数compile()(设置匹配对象类型)和findall()(找到所有匹配对象并以list返回)。 功能实现: 第二次排序:在上次的排序中我保留了分类和从小到大的排序。方便提取索引时,索引也是从小到大。每遍历一个元素(CA组合有效信息),就compile()和findall(),从该元素中提取数字组合(在compile()的参数中添加()就能够使提取的内容成为一组数据),然后通过dict自带函数setdefault()添加索引,并可以设置索引值为list类型(dict类型的索引的值不可变,但如果类型为list,list的内容可以进行改动),避免重复索引,在本次遍历中完成将元素添加到索引值对应的list中去 需求五: 之后对程序进行测试,在测试test2时发现layers增加了fourlayers类型后,用来代表layers的数字2和4会影响分类结果。比如1AA(2)-1AA(2)和1A(4)-1A(2)会被归为两类。 test1:当CA组合的格式为xx-xx-xx-xx-xx(最长可识别为五位元素的组合,再长就需要修改代码) test2:当CA组合包含fourLayers test3:当CA组合缺失某种格式比如xx-xx时发现layers增加了fourlayers 功能实现: : 解除layers对排序的影响:用II 和 IV替代2,4来表示layers,测试后不影响阅读与分类 二、整体程序架构: 1.通过循环和自带的startswith()先将每组CA组合的有效信息识别 2.通过sorted()函数将所有CA组合从小到大排列 3.通过count()函数将所有CA组合根据格式不同分类 4.通过循环和正则表达式的split()对所有CAlist数据进行处理(用split处理只是防止出现不必要的错误) 5.通过循环和正则表达式compile()和findall()识别所有CA组合中数字,并将同一组合中的数字合为一个元素(在同一循环,用这个数字的元素作为一个dict的索引),用dict自带的setdefault()进行Key的添加顺便设置Key的值为list,避免Key重复,在用append把当前Key的字符串,添加到Key对应值的list中去
最新文章
2024年阿里云双十二大促即将结束,云服务器配置升级享折扣!
​​2024年阿里云双十二大促即将结束,云服务器配置升级享折扣!阿里云大促最后几天,云产品每年都涨价,错过优惠不再有!2024年末阿里云大促活动,服务器多少钱一年?2024年末阿里云服务器租用费用价格:阿里云ECS云服务器e系列2核2G配置3
2024年中药新药研发情况分析:中药临床试验逐年攀升,研发投入加码
近年来,伴随国家层面对于中医药传承与创新的持续强化与支持,中药新药研发领域正经历着一段蓬勃发展的黄金时期。自2021年以来,中药新药研发呈现出加速态势,截止2024年6月,短短数年间,已获批上市的新药数量跃升至34款,较以往显著增长
3D2021年周五连号走势图近50期带连线
功能类福彩3D显示遗漏:显示/隐藏遗漏值,遗漏值是指自上期开出到本期间隔的期数。福彩3D遗漏分层:是将当前遗漏值用柱状图形标注。福彩3D分段线:是每五期使用分隔线,使横向导航更加清晰。福彩3D显示断区:在分区走势中使用,将开出0个号
android wap网站/网站seo排名优化价格
1.1 索引的优点 大大减少了服务器需要扫描的数据量,加快数据库的检索速度帮助服务器避免排序和临时表将随机io变成顺序io 1.2 索引的用处 速查找匹配WHERE子句的行从consideration中消除行,如果可以在多个索引之间进行选择࿰
014921凤凰网|全面数据应用分析
  在当今信息爆炸的时代,数据的应用与分析已深入至各个领域,对于社会发展与商业决策的重要性不言而喻。凤凰网作为领先的新媒体平台,其对全面数据的应用与分析是值得我们深入探讨的议题。本文旨在解析凤凰网在全面数据应用分析方面的特
12月16日证券之星早间消息汇总:财政部、证监会发声
  宏观要闻:  1.财政部党组书记、部长蓝佛安13日主持召开党组会议,会议指出,明年要实施更加积极的财政政策,确保财政政策持续用力、更加给力。会议还指出,财政部门要准确把握明年经济财政工作的总体要求和政策取向,提高财政赤字率
47个增长策略,Netflix、Facebook、YouTube都在用
作者:JOHN MCELBOROUGH,来源:经纬创投当下,一家创业公司要想成长,其挑战无疑越来越综合而多元——对于创业公司来说,增长非常重要,但在流量红利已不明显的今天,对于每一个创业者来说,找到可执行的、有效的增长途径非常重要。这就是
ChatGPT——强大的人工智能聊天机器人
随着人工智能技术的不断发展,聊天机器人成为了一个备受瞩目的领域。在这个领域中,ChatGPT凭借其卓越的性能和广泛的应用场景,成为了最受欢迎的聊天机器人之一。ChatGPT是由OpenAI公司开发的一款基于深度学习技术的人工智能语言模型。它能
2025(23H2)装机版win10/64位/Ghost版/专业版 10版
安装方法  在安装系统前,请注意备份C盘上的重要数据,系统重装会重置C盘,建议提前转移个人资料并备份硬件驱动。下面推荐两种安装系统的方式,用户根据自己的情况选择方法安装。  1、硬盘安装方法(硬盘安装工具下载地址:点击下载)
https://cn.bing.com
​https://baidu.com 百度是中文老牌搜索引擎,中文信息相对比较全面。英文信息比较少,如果遇到一些热门的商业性词汇,第一个大部分篇幅几乎会被广告占满。 https://sogou.com 搜索最早起源于搜狐,后来被腾讯收购。整体感觉,反应速度
相关文章
推荐文章
发表评论
0评