繁体   English   中英

一次在文件文件夹上运行python代码

[英]run python code on a folder of files at once

我有一个脚本,可以从XML文件中提取数据元素。 我想在XML的目录(文件夹)而不是单个目录上运行它。 这是我到目前为止的内容:

from xml.dom import minidom
from datetime import *
import os
import glob

filename = glob.glob("*.xml")
f = open(filename)
for xml in f:
    print (xml)
    xmldoc = minidom.parse(xml)
    tcd = xmldoc.getElementsByTagName("QualityMeasureDocument")[0]
    sport = activitiesElement.attributes["root"]
    sportName = sport.value
    print (sportName)


我收到此错误:

Traceback (most recent call last):
File "C:/Python34/Scripts/process.py", line 7, in <module>
f = open(filename)
TypeError: invalid file: ['CMS9v2.xml', 'country_data.xml', 'test.xml']
activitiesElement = tcd.getElementsByTagName("id")[0]


最好也将其变成一个函数。

glob.glob返回文件名列表。 您正在将列表视为文件。 这样尝试

filenames = glob.glob("*.xml")
for filename in filenames:
     f = open(filename)
     ...

将您当前的解析提取为一个函数:

def parsefile (filename):
    f = open(filename) 
    for xml in f: 
        print (xml) 
        xmldoc = minidom.parse(xml) 
        tcd = xmldoc.getElementsByTagName("QualityMeasureDocument")[0] 
        sport = activitiesElement.attributes["root"]
        sportName = sport.value 
        print (sportName)

称它为:

for file in glob.glob(*.xml):
    parsefile (file)

通常,要使python脚本的一部分功能起作用,您需要做的就是缩进并添加一行

def functionname (var1, var2... ):

其中var1等是之前依赖的名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM