python列表解析式统计字符次数_pythonxml解析并统计字符串的出现次数,然后输出到Ex...

所以问题主要有两个方面。(1) 从每个文件中找出最大值对,并(2)将其写入Excel工作簿。我一直提倡编写可重用代码。在这里,您必须将所有xml文件放在一个文件夹中,然后简单地执行main方法并获得结果。在

现在有几个选项可以写入excel。最简单的方法是创建一个制表符或逗号分隔的文件(CSV)并手动将其导入excel。XMWT是一个标准库。OpenPyxl是另一个库,它使得创建excel文件在代码行方面更简单、更小。在

请确保在文件开头导入所需的库和模块。在import re

import os

import openpyxl

在读取XML文件时,我们使用正则表达式来提取所需的值。在

^{pr2}$

为了更模块化一点,创建一个方法来解析给定XML文件中的每一行,查找regex模式,提取所有值并返回最大值。在下面的方法中,我返回一个包含两个元素的元组(Value,另一个),这两个元素是该文件中每种类型的最大数目。在def get_values(filepath):

values = []

another = []

for line in open(filepath).readlines():

matchValue = re.search(regexPatternValue, line)

matchAnother = re.search(regexPatternAnotherValue, line)

if matchValue:

values.append(int(matchValue.group(1)))

if matchAnother:

another.append(int(matchAnother.group(1)))

# Now we want to calculate highest number in both the lists.

try:

maxVal = max(values)

except:

maxVal = '' # This case will handle if there are NO values at all

try:

maxAnother = max(another)

except:

maxAnother = ''

return maxVal, maxAnother

现在将XML文件保存在一个文件夹中,对其进行迭代,并在每个文件夹中提取regex模式。在下面的代码中,我将这些提取的值附加到一个名为“可写行”的列表中。最后,在解析所有文件之后,创建一个工作簿并以格式添加提取的值。在def process_folder(folder, output_xls_path):

files = [folder+'/'+f for f in os.listdir(folder) if ".txt" in f]

writable_lines = []

writable_lines.append(("Value","Another Value")) # Header in the excel

for file in files:

values = get_values(file)

writable_lines.append((str(values[0]),str(values[1])))

wb = openpyxl.Workbook()

sheet = wb.active

for i in range(len(writable_lines)):

sheet['A' + str(i+1)].value = writable_lines[i][0]

sheet['B' + str(i+1)].value = writable_lines[i][1]

wb.save(output_xls_path)

在下面的for循环中,我们指导openpyxl在指定的单元格中写入值,比如典型的excel格式的sheet[“A3”]、sheet[“B3”]等

准备出发了。。。在if __name__ == '__main__':

process_folder("xmls", "try.xls")

FPHWQ.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值