xml.etree.ElementTree: OSError: [Errno 22] when parsing multiple files
xml.etree.ElementTree: OSError: [Errno 22] when parsing multiple files
我正在尝试使用 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
来修复它,但事实并非如此。
导致问题的是 \n
换行符。只好strip()
filename
.
希望这会解决
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))
我正在尝试使用 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
来修复它,但事实并非如此。
导致问题的是 \n
换行符。只好strip()
filename
.
希望这会解决
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))