运行 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
returns 文件名列表。您正在将列表视为文件。试试这个方法
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 等是它所依赖的先前定义的名称。
我有一个脚本可以从 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
returns 文件名列表。您正在将列表视为文件。试试这个方法
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 等是它所依赖的先前定义的名称。