xml.etree.ElementTree:OSError:[Errno 22]解析多个文件时

时间:2015-01-07 22:15:55

标签: python xml

我正在尝试使用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来修复它,但它没有。

2 个答案:

答案 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))