import xml.etree.ElementTree as ET

ID="000296166"
tree = ET.parse("\folder" + ID +'.xml')
root = tree.getroot()

What I'm trying to do is access XML files that aren't in the same folder as the .py using the function from xml.etree.elementtree

It keeps giving the error:

IOError: [Errno 22] invalid mode ('rb') or filename: '\x0colder000296166.xml'

I keep getting the feeling that I did something wrong when writing the path...but I can't find any examples online to see how it's supposed to work

有帮助吗?

解决方案

\f is interpreted as the page brake and is replaced with hex code 0xC. You should remove leading backslash from path.

tree = ET.parse("folder" + ID +'.xml')

And if you use backslash inside strings it can be escaped like this \\

EDIT

When you work with paths it is better to use os.path module:

 import os 
 ...
 tree = ET.parse(os.path.join('folder', ID + '.xml'))
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top