Python 在Excel中打印输出
我是Python新手。我想从多个xml文件中检索标记值,并将其打印在excel工作表中。我试着让脚本运行良好,而不是excel打印部分 这是我的剧本Python 在Excel中打印输出,python,excel,xlwt,Python,Excel,Xlwt,我是Python新手。我想从多个xml文件中检索标记值,并将其打印在excel工作表中。我试着让脚本运行良好,而不是excel打印部分 这是我的剧本 from xml.dom.minidom import parse, parseString import xlwt import os def sh(dir): for r,d,f in os.walk(dir): n=0 for files in f: if files.endswith(".xml"):
from xml.dom.minidom import parse, parseString
import xlwt
import os
def sh(dir):
for r,d,f in os.walk(dir):
n=0
for files in f:
if files.endswith(".xml"):
print files
dom=parse(os.path.join(r, files))
name = dom.getElementsByTagName('rev')
title = dom.getElementsByTagName('title')
a=xlwt.Workbook()
sheet=a.add_sheet('sheet1')
sheet.write(n, 0, files)
sheet.write(n, 1, title[0].firstChild.nodeValue)
sheet.write(n, 2, name[0].firstChild.nodeValue)
n=n+1
a.save('sha.xls')
print title[0].firstChild.nodeValue
print name[0].firstChild.nodeValue
sh("path")
我遇到的问题是,输出仅在这些列(0,0)、(0,1)、(0,2)中打印
e、 如果我愿意的话
A B C
D E F
G H I
我的输出
G H I
在(0,0)、(0,1)、(0,2)中。
因此,我了解到,每个新输出都覆盖在现有输出上,并且只显示最终输出。如何避免这种情况并获得我想要的?您应该在循环之外定义工作簿和工作表:
def sh(dir):
a = xlwt.Workbook()
sheet = a.add_sheet('sheet1')
n = 0
for r,d,f in os.walk(dir):
for files in f:
if files.endswith(".xml"):
print files
dom=parse(os.path.join(r, files))
name = dom.getElementsByTagName('rev')
title = dom.getElementsByTagName('title')
sheet.write(n, 0, files)
sheet.write(n, 1, title[0].firstChild.nodeValue)
sheet.write(n, 2, name[0].firstChild.nodeValue)
n += 1
print title[0].firstChild.nodeValue
print name[0].firstChild.nodeValue
a.save('sha.xls')
此外,如果您不需要在子目录中搜索XML文件,请考虑切换到使用<代码> OS.Walk() >:
您应该在循环外定义工作簿和工作表:
def sh(dir):
a = xlwt.Workbook()
sheet = a.add_sheet('sheet1')
n = 0
for r,d,f in os.walk(dir):
for files in f:
if files.endswith(".xml"):
print files
dom=parse(os.path.join(r, files))
name = dom.getElementsByTagName('rev')
title = dom.getElementsByTagName('title')
sheet.write(n, 0, files)
sheet.write(n, 1, title[0].firstChild.nodeValue)
sheet.write(n, 2, name[0].firstChild.nodeValue)
n += 1
print title[0].firstChild.nodeValue
print name[0].firstChild.nodeValue
a.save('sha.xls')
此外,如果您不需要在子目录中搜索XML文件,请考虑切换到使用<代码> OS.Walk() >:
非常感谢你。它确实工作得很好。我不知道glob.glob()格式,将尝试使用此格式。再次感谢……非常感谢。它确实工作得很好。我不知道glob.glob()格式,将尝试使用此格式。再次感谢……)