Python通过解压ofd文件获取发票信息
实际上ofd、docx、xlsx等文件就是一个压缩文件,是可以被解压处理的。所以我们把一个ofd格式的发票文件解压后就可以看到它的目录,如下:

再用谷歌或者IE打开里面的xml属性的文件,就可以看到发票相关信息,如下:

所以获取发票信息的实现方法大致就是:先解压ofd格式文件,得到里面的OFD.xml文件,在通过解析xml文件获取到发票相关信息
解析xml文件

from xml.dom.minidom import parse

def get_info(dir_path, unzip_file_path=None, removed=True):
“”"
:param dir_path: 压缩文件路径
:param unzip_file_path: 解压后的文件路径
:param removed: 是否删除解压后的目录
:return: ofd_info,字典形式的发票信息
“”"
file_path = unzip_file(dir_path, unzip_file_path)
io = f"{file_path}/OFD.xml"
element = parse(io).documentElement
nodes = element.getElementsByTagName(‘ofd:CustomDatas’)
ofd_info = {}
for i in range(len(nodes)):
sun_node = nodes[i].childNodes
for j in range(len(sun_node)):
name = sun_node[j].getAttribute(‘Name’)
value = sun_node[j].firstChild.data
ofd_info[name] =value
if removed:
shutil.rmtree(unzip_path)
return ofd_info
解压ofd文件

import shutil
import zipfile

def unzip_file(zip_path, unzip_path=None):
“”"
:param zip_path: ofd格式文件路径
:param unzip_path: 解压后的文件存放目录
:return: unzip_path
“”"
if not unzip_path:
unzip_path = zip_path.split(’.’)[0]
with zipfile.ZipFile(zip_path, ‘r’) as f:
for file in f.namelist():
f.extract(file, path=unzip_path)

return unzip_path

结果显示

博主箴言:该博文中的文字内容仅供参考学习,如有不当之处还望各位不吝赐教,为博主指点一二,不胜感激:▄︻┻┳═一…… ☆(>○<)
分类: python

Python通过解压ofd文件获取发票信息相关推荐

  1. python循环解压rar文件

    python循环解压rar文件 C:. │ main.py │ ├─1_STL_算法简介 │ STL_算法简介.rar │ └─2_STL_算法_填充新值STL_算法_填充新值.rar 事情是这样的, ...

  2. python怎么解压rar文件_Python解压 rar、zip、tar文件的方法

    Q1 :如何解压 rar 压缩包文件? A : Step1:检查是否有 rarfile 第三方库,若没有该模块,则需要进行安装 : Step2:参考代码如下: import rarfile impor ...

  3. 在python中解压rar文件

    首先说一下我的系统和python版本信息: win7.python2.7.12 我找了两篇个人认为比较好的文章: 第一篇http://blog.csdn.net/luoye7422/article/d ...

  4. python批量解压文件,python批量解压zip文件的方法

    python怎样压缩和解压缩ZIP文件 说明 python使用zipfile模块来压缩和解压zip文件 才能最好于孤独中培养:品格最好在世界的汹涌波涛中形成. 代码 import os,os.path ...

  5. python怎么解压rar文件_用Python解压缩rar、zip文件的方法

    玩蛇网本文为大家提供关于用Python解压缩rar.zip文件的方法源码.Python语言对文件方面的处理还是很方便的,例如以前有为大家介绍过Python读取分割压缩TXT文本文件的方法.Python ...

  6. Linux下python如何解压rar文件,RAR解压文件

    默认在linux下我们不能解压压缩rar文件,那我们如何使用呢? 我们可以下载rarlinux安装包实现解压压缩后缀为rar的包 下载地址:https://www.rarlab.com/downloa ...

  7. python批量解压文件_python 批量解压压缩文件的实例代码

    下面给大家介绍python 批量解压压缩文件的实例代码,代码如下所述: #/usr/bin/python#coding=utf-8import os,sys import zipfile open_p ...

  8. 【python】Python通过unrar库实现解压rar文件

    写在前面 因实际问题需要通过Python来解压rar文件,一开始是通过pip install rarfile也就是安装rarfile库来实现,但是它会报"rarfile.RarUnknown ...

  9. 【Android 安全】DEX 加密 ( Java 工具开发 | 解压 apk 文件 | 加密生成 dex 文件 | 打包未签名 apk 文件 | 文件解压缩相关代码 )

    文章目录 一.解压 apk 文件 二.加密生成 dex 文件 三.打包未签名 apk 文件 四.完整代码示例 五.文件解压缩相关代码 六.执行结果 参考博客 : [Android 安全]DEX 加密 ...

最新文章

  1. Java的Map接口,以及Collection和Collections的区别
  2. gbq6的文件能转换成gbq5_PPT文件转换成PDF怎么转?这些方法能实现快速转换
  3. python setdefault函数_python 字典 setdefault()和get()方法比较详解
  4. java sql超过32k_db2 clob类型如何能存储大于32k的字符串
  5. mycat 1.6.5 for mysql 8分表攻略
  6. Python学习入门基础:一篇文章搞定函数基础、函数进阶
  7. python多进程运行MIC(最大信息系数)
  8. php mysql宠物资讯网设计与实现成品
  9. OpenCV基本图形绘制之椭圆
  10. QQ客户端聊天窗口输入/自动变成表情 - 解决方案
  11. 小组赛,每个小组有5支队伍,互相之间打单循环赛,胜一场3分,平一场1分,输一场不得分,小组前三名出线。平分抽签。问一个队最少拿()分就有理论上的出线希望
  12. iOS 常用第三方库
  13. win vista/win 7/win 2008 超级激活工具
  14. 网络天才网页中文版_akinator官方版下载_akinator中文版在线玩-网络天才中文版下载网页版 - Win7旗舰版...
  15. android开发之单点触摸
  16. LoRa笔记03 LoRa sx1276 sx1278空中唤醒研究
  17. js设计模式——组合模式
  18. 微信小程序版狼人杀+服务端系列(1)
  19. 最小生成树(MST)相关三题
  20. 实习第一个月体会和总结

热门文章

  1. ORACLE DBA培训命令汇总
  2. 定时任务(每晚12点执行)
  3. DNS无法解析IP_域名解析错误怎么办?域名解析错误原因有哪些?
  4. 乐学python视频资源_铁乐学python_day04-作业
  5. 武汉软件工程职业学院计算机分数线,武汉软件工程职业学院录取分数线2021是多少分(附历年录取分数线)...
  6. Longest Common Prefix_LeetCode
  7. 何为ISM频段?ISM频段主要频率有哪些?
  8. 混合正弦余弦算法和Lévy飞行的麻雀算法
  9. 英语黑色幽默IT段子
  10. 电脑上如何登录华为云服务器地址,华为手机上的云服务备忘录如何在电脑上登录?...