python之xml和excel学习

ops/2024/12/15 11:09:03/

dom解析

python">from xml.dom.minidom import parse
import xml.dom.minidom# 使用minidom解析器打开 XML 文档
DOMTree = xml.dom.minidom.parse("xxx.xml")
collection = DOMTree.documentElement# 根据标签名称获取
movies = collection.getElementsByTagName("fistTag")[0]
movies = movies.getElementsByTagName('secondTag')
rpmList = []
for movie in movies:# 内容获取方式xxx.childNodes[0].datastrs = movie.childNodes[0].data.split(',')for str in strs:rpmList.append(str.strip())

另还有sax解析,可更好产生bean类

python">from openpyxl import load_workbookclass RpmData:def __init__(self, name, incFileNum):self.name = nameself.incFileNum = incFileNumdef get_index(char):return ord(char) - ord('A')
import re
def get_rpm_package_name(rpm_name):# 正则表达式匹配RPM包名match = re.match(r"^(?P<name>[^-]+)-(?P<version>[^-]+)-(?P<release>.+)\.rpm$", rpm_name)if match:return match.group('name')else:raise ValueError("Invalid RPM package name format")def extract_name(rpm_package_name):parts = rpm_package_name.split('-')return '-'.join(parts[:len(parts)-2])wb = load_workbook(r'xxx.xlsx')
sheet = wb['rpm视图']# os.remove("sample.xlsx")from openpyxl import Workbook
# 创建一个新的工作簿
dest_wb = Workbook()
# ws = dest_wb.create_sheet(title="rpm视图")
ws = dest_wb.activex=1
y=1for row in sheet.iter_rows(min_row=3):incFileNum = row[get_index('Q')].valueif incFileNum <= 0.0:continuerpmName = extract_name(row[get_index('A')].value)if rpmName in rpmList:y=1for cell in row:# destCell = ws[cell.coordinate]destCell = ws.cell(row=x, column=y)destCell.value = cell.valuey+=1# cell.parent = ws# ws.append(row)x+=1# rpmDataList.append(RpmData(row[get_index('A')].value, row[get_index('Q')].value))# for cell in row:#     print(cell.value)
dest_wb.save("sample.xlsx")

当原excel有引用时,实际只要cell.parent = ws,就可复制,但文件格式会有点问题

QA

python文件的时候竟然报SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: tr这个错误,其实引起这个错误的原因就是转义的问题

df = pd.read_excel(r'xxx.xlsx')

xlrd.biffh.XLRDError: Excel xlsx file; not supported

高版本不支持xlsx


http://www.ppmy.cn/ops/142082.html

相关文章

计算机操作系统保护与安全教学指南

一、引言 在当今数字化时代&#xff0c;计算机操作系统作为计算机系统的核心&#xff0c;其安全性至关重要。操作系统不仅要管理计算机的硬件资源&#xff0c;还要为各类应用程序提供运行环境。一旦操作系统的安全防线被攻破&#xff0c;可能导致用户数据泄露、系统瘫痪等严重…

渗透测试-前端验签绕过之SHA256+RSA

本文是高级前端加解密与验签实战的第2篇文章&#xff0c;本系列文章实验靶场为Yakit里自带的Vulinbox靶场&#xff0c;本文讲述的是绕过SHA256RSA签名来爆破登录。 绕过 根据提示可以看出这次签名用了SHA2556和RSA两个技术进行加密。 查看源代码可以看到RSA公钥是通过请求服务…

一座重庆工厂,智能与制造的“两江之约”

嘉陵江与长江在此交汇&#xff0c;勾勒出了重庆最独特的风景线&#xff0c;也成就了这座城市的千百年商贸兴盛与近代工业的崛起。 数字化、智能化时代&#xff0c;这座江边古城、工业重镇&#xff0c;也开始涌动着智能技术的创新源动力。其中最具代表性的&#xff0c;就是坐落在…

【动手学运动规划】 4.6 Hybrid A*算法

勇敢不是不感到恐惧&#xff0c;而是在恐惧面前仍然前行。 —《狮子王》 &#x1f3f0;代码及环境配置&#xff1a;请参考 环境配置和代码运行! 4.6.1 概述 Hybrid A* 是 2004 年 DARPA 城市挑战中的冠军车队使用的全局导航算法。相比与传统的 A* 算法&#xff0c;Hybrid A* …

JetBrains IDE(IDEAWebStorm)配置GitHub Copilot

关于 GitHub Copilot 和 JetBrains IDE GitHub Copilot 在编写代码时提供 AI 对程序员的自动完成样式的建议。 有关详细信息&#xff0c;请参阅“关于 GitHub Copilot Individual”。 如果使用 JetBrains IDE&#xff0c;可以直接在编辑器中查看并合并来自 GitHub Copilot 的…

机器学习环境

如果没有指定 Python 版本&#xff0c;通常建议使用 Python 的最新稳定版本&#xff0c;因为它通常会包含最新的功能和安全修复。对于大多数库来说&#xff0c;Python 3.8、3.9 和 3.10 都是广泛支持的版本。以下是考虑到兼容性和稳定性的改进后的环境配置&#xff1a; 指定 Py…

1_sass教程 --[CSS预处理]

Sass&#xff08;Syntactically Awesome Style Sheets&#xff09;是一种强大的 CSS 预处理器&#xff0c;它扩展了 CSS 的功能&#xff0c;使样式表更加简洁、模块化且易于维护。本教程将引导你从基础到高级特性&#xff0c;帮助你掌握如何使用 Sass 来优化你的前端开发工作流…

《开源时间序列数据:探索与应用》

《开源时间序列数据&#xff1a;探索与应用》 一、开源时间序列数据概述二、热门的开源时间序列数据库1. InfluxDB2. TimescaleDB3. Prometheus4. OpenTSDB5. Graphite6. Druid 三、开源时间序列数据的应用场景1. 物联网领域2. 金融领域3. 运维监控领域4. 能源领域 四、开源时间…