当前位置: 首页 > news >正文

个人网站如何做即时支付贵州贵州省住房和城乡建设厅网站

个人网站如何做即时支付,贵州贵州省住房和城乡建设厅网站,做跨境电商的网站,外贸网络推广怎样做个人学习笔记#xff0c;仅供参考。 需求#xff1a;提取AUTOSAR SWS中所有的API接口信息#xff0c;用于生成C代码。 此处以AUTOSAR_SWS_CANDriver.pdf为例#xff0c;若需要提取多个SWS文件#xff0c;遍历各个文件即可。 1.Python包 pdfplumber是一款完全用python开…个人学习笔记仅供参考。 需求提取AUTOSAR SWS中所有的API接口信息用于生成C代码。 此处以AUTOSAR_SWS_CANDriver.pdf为例若需要提取多个SWS文件遍历各个文件即可。 1.Python包 pdfplumber是一款完全用python开发的pdf解析库对于线框完全的表格pdfminer能给出比较好的抽取效果但是对于线框不完全包含无线框的表格其效果就差了不少。因为在实际项目所需处理的pdf文档中线框完全及不完全的表格都比较多。 备注安装时可能会因为网络问题导致pdfplumber安装失败可以切换国内镜像进行安装具体命令如下 pip install pdfplumber -i http://pypi.douban.com/simple其他国内源如下 清华https://pypi.tuna.tsinghua.edu.cn/simple 阿里云http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 华中理工大学http://pypi.hustunique.com/ 山东理工大学http://pypi.sdutlinux.org/2.实现思路 目标表格 具体步骤 1、使用extract_tables解析当前page所有表格判断一个单元格为“Service Name”关键字 2、若存在Service Name将此表格的内容追加到总表 3、读取当前表的同时判断是否是完整的表格如果不是则继续读取下一页在一起追加到总表 备注第一个单元格不是“Service Name”存在两种情况一是非我们想要的表格另一个是部分我们需要的后者在步骤3中处理掉所以无影响 参考代码 import pdfplumberinputFile AUTOSAR_SWS_CANDriver.pdf functionList [] # 前15页无有效信息为提高效率减少扫描页数 startPage 15def readPdfFile():global functionListtable_settings {vertical_strategy: lines, # 对于完整的表格vertical_strategy与horizontal_strategy都配置为lineshorizontal_strategy: lines,snap_y_tolerance: 10, # y方向上较短的线条extract_tables也会识别为表格的边界最后导致识别出错# 这里将最小像素点设置为10小于10丢弃线条丢弃}with pdfplumber.open(inputFile) as pdf:######################################### 仅前期调试使用具体使用时可以屏蔽first_page pdf.pages[63] # 指定631页PDF内容im first_page.to_image() # 转换为image个数im.reset().debug_tablefinder(table_settings) # 将table_settings配置效果输出到图片方便观看im.save(xx.PNG, formatPNG, quantizeTrue, colors256, bits8)########################################for j in range(len(pdf.pages) - startPage):page pdf.pages[j startPage]table page.extract_tables(table_settings)for i in range(len(table)): # 遍历所有表格row table[i]if row[0][0] Service Name: # 找表头tempList row # 先复制已有的信息if (i (len(table)-1)) and (row[-1][0] ! Available via): # 最后一个表且缺少最后一行继续读取下一页的第一个表page1 pdf.pages[j startPage 1] # 继续读取下一页table1 page1.extract_tables(table_settings)for table1_1 in table1[0]: # 只需要读取第一个表格其他的会在在下次循环中写入if table1_1[0] : # 如果第一个表格的第一个参数为空代表第一行的参数的补充并不是新的参数所以此处拼接上去tempList[-1][1] \n table1_1[1]else: # 如果不为空代表是新参数直接追加即可tempList.append(table1_1)functionList.append(tempList) # 最后汇总到总表格内if __name__ __main__:readPdfFile()for i in functionList:print(i)print(共%d个函数 % len(functionList))3.输出结果 最终保存到全局列表functionList中后续可根据各自的开发规范/要求输出相应的代码。 4. 配置说明 table_settings {vertical_strategy: lines, # 对于完整的表格vertical_strategy与horizontal_strategy都配置为lineshorizontal_strategy: lines,snap_y_tolerance: 10, # y方向上较短的线条extract_tables也会识别为表格的边界最后导致识别出错# 这里将最小像素点设置为10小于10丢弃线条丢弃}4.1 snap_y_tolerance默认值效果 这里可以发现识别了很多无效的边界进入导致组成了很多多余的单元格最终识别出错或者无法识别 备注四个正交连接的小圆圈框起来的区域认为是一个单元格此处不是很明显具体可以看下图 4.2 snap_y_tolerance配置为10效果 可以很明显看见上面很多短的边界被忽略掉了。 备注“Syntax”出个人了解不应该识别出来但是此处任然识别出来了可能因为左侧的两点未连接所以不影响最终结果此处未进行深入研究知道的小伙伴欢迎讨论 5. 参考资料 1、https://zhuanlan.zhihu.com/p/352722932 2、https://github.com/jsvine/pdfplumber#visual-debugging 3、https://github.com/jsvine/pdfplumber/blob/stable/examples/notebooks/extract-table-nics.ipynb 4、https://zhuanlan.zhihu.com/p/100460222 5、https://zhuanlan.zhihu.com/p/100462752 6、https://zhuanlan.zhihu.com/p/100464246
http://www.w-s-a.com/news/746668/

相关文章:

  • 电商网站的相同点医疗网站建设代理商
  • 网址导航网站有哪些易营宝智能建站
  • 私人定制哪个网站做的比较好免费网站使用
  • 嘉兴网站建设系统免费的seo优化
  • 购书网站开发的意义网站建设接单渠道
  • 网站站内搜索怎么做wordpress默认主题修改
  • 网站推广的表现方式交网站建设 域名计入什么科目
  • 龙岗南联网站建设公司江门市
  • 网站运行方案设计平台模式
  • 网站加入wordpress邳州城乡建设局网站
  • 两个网站如何使用一个虚拟主机东莞市网站seo内容优化
  • 湖南网站建设公司排名傲派电子商务网站建设总结
  • 网站建设求职要求互联网挣钱项目平台
  • 网站权重怎么做做黑彩网站能赚钱吗
  • 三台建设局网站网页设计购物网站建设
  • thinkphp大型网站开发市场调研公司招聘
  • 天宁区建设局网站七冶建设集团网站 江苏
  • 越南网站 后缀湘潭新思维网站
  • 环球旅行社网站建设规划书网钛cms做的网站
  • 软件资源网站wordpress不能识别语言
  • 东坑仿做网站西安私人网站
  • 公司想做个网站怎么办如何搭建视频网站
  • .net网站架设凯里网站建设哪家好
  • seo网站建站建站国外百元服务器
  • 家具网站开发设计论文企业网站里面的qq咨询怎么做
  • 网站视频提取软件app淘宝店购买网站
  • 站长之家域名解析做百度推广网站咱们做
  • 行业 网站 方案莱州网站建设公司电话
  • 丹东谁做微网站威海网络科技有限公司
  • 寻找网站建设_网站外包自助打印微信小程序免费制作平台