我正在尝试使用ElementTree.parse解析多个文件(文件中列出的路径,每行一个),如下所示:
import xml.etree.ElementTree as ET
...
file_list = open('datasets\files.txt','r')
for filename in file_list:
tree = ET.parse(filename)
如果我的files.txt只有一行,则程序运行并解析数据。如果我有多行,我会收到错误:
OSError: [Errno 22] Invalid argument: 'datasets/data1.xml'
files.txt的示例内容是:
datasets/data1.xml
datasets/data2.xml
删除任一行将使程序正常工作。但是,当我两个都得到错误。
我的想法可能是我必须设置tree = None
来修复它,但它没有。
答案 0 :(得分:0)
导致问题的是\n
换行符。必须strip()
filename
。
答案 1 :(得分:0)
希望这会解决问题
import io
import xml.etree.ElementTree as ET
...
file_list = open('datasets\files.txt','r')
for filename in file_list:
tree = ET.parse(io.StringIO(filename.text))