Python Openpyxl Append issu

2024-10-01 00:21:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有数百个XML文件,需要从中提取两个值并输出到Excel或CSV文件中。这是我目前拥有的代码:

#grabs idRoot and typeId root values from XML files
import glob
from openpyxl import Workbook
from xml.dom import minidom
import os


wb = Workbook()
ws = wb.active
def typeIdRoot (filename):

    f = open(filename, encoding = "utf8")
    for xml in f:

        xmldoc = minidom.parse(f)

        qmd = xmldoc.getElementsByTagName("MainTag")[0]

        typeIdElement = qmd.getElementsByTagName("typeId")[0]

        root = typeIdElement.attributes["root"]

        global rootValue
        rootValue = root.value
    print ('rootValue =' ,rootValue,)
    ws.append([rootValue])
    wb.save("some.xlsx")   



wb = Workbook()
ws = wb.active
def idRoot (filename):

    f = open(filename, encoding = "utf8")
    for xml in f:

        xmldoc = minidom.parse(f)

        tcd = xmldoc.getElementsByTagName("MainTag")[0]

        activitiesElement = tcd.getElementsByTagName("id")[0]

        sport = activitiesElement.attributes["root"]

        sportName = sport.value

        print ('idRoot =' ,sportName,)

        ws.append([idRoot])

        wb.save("some.xlsx")    


for file in glob.glob("*.xml"):
    typeIdRoot (file)

for file in glob.glob("*.xml"):
    idRoot (file)


第一个值遵循1.11.111.1.111111.1.3格式。第二种是字母和数字的混合。我相信这就是错误的原因:

^{pr2}$


我希望结果在同一行上添加两个值。因此,我将为目录中的每个文件添加一个新行。我需要将第二个值添加到第二行。在

因此:

  Value 1                           Value 2
1.11.111.1.111111.1.3           10101011-0d10-0101-010d-0dc1010e0101

Tags: 文件inimportforwsrootxmlfilename
1条回答
网友
1楼 · 发布于 2024-10-01 00:21:15

idRoot是函数的名称。 所以当你写作的时候

ws.append([idRoot])

你可能是说:

^{pr2}$

当然,你可以写一些东西,比如:

ws.append([rootValue, sportName])

前提是两个变量都定义了合理的值。 最后一件事,你应该只保存一次文件。在

相关问题 更多 >