我使用以下代码从目录中打开文件。
for root, dirs, files in os.walk("./Boards"):
#Eliminate hidden files
files=[f for f in files if not f.startswith('.')]
for f, file in enumerate(files):
print "ROOT: " + str(root)
fileName=os.path.join(root,file)
print fileName
当我运行此操作时,我收到此错误
ROOT: ./Boards/AbuseSupport
./Boards/AbuseSupport/thread_title_11151.xml
ROOT: <Element 'board' at 0x1048ae450>
任何人都可以解释这是如何发生的以及如何解决它
答案 0 :(得分:1)
我认为问题在于,当您走过目录并同时解析XML时,您重用 root
变量。在解析了一个XML文件之后,root
变量成为解析树的根元素,但在循环的下一次迭代中,您仍然使用root
变量作为目录名。
答案 1 :(得分:0)
我创建了一个基本目录结构:
/Boards
/Boards/a.txt
/Boards/b.txt
/.ssh
我使用了以下代码:
import os
for root, dirs, files in os.walk("./Boards"):
#Eliminate hidden files
files=[f for f in files if not f.startswith('.')]
for f, file in enumerate(files):
print "ROOT: " + str(root)
fileName=os.path.join(root,file)
print fileName
我收到了以下回复:
>> ROOT: ./Boards
>> ./Boards/a.txt
>> ROOT: ./Boards
>> ./Boards/b.txt
>> ROOT: ./Boards
>> ./Boards/c.txt
Mac OS 10.8.3 - Homebrew Python 2.7.3
我认为您的问题是,您已将root用户分配给XML Element对象。是否有其他使用XML库的代码?