如何解决有问题的文件名返回为“ .xml”,但不存在
import lxml.etree as ET
import os
# Select path of Annotations
path = "/home/student/Documents/Dataset/Train/Annotation/"
# Search for each file under the path
for files in os.listdir(path):
# open the files by appending the path with file name. Parse it and find root
with open(path + files) as f:
tree = ET.parse(f)
root = tree.getroot()
# Loop through the elements
for elem in root.getiterator():
try:
if elem.tag == 'name':
if elem.text == 'person':
print(files)
except AttributeError:
pass
结果:
.xml
.xml
.xml
您好,我正在编写一个脚本,以在.xml文件的文件夹中将某个类的标签名称从'person'更改为'head'。我做了一个简单的计数器来计算标签总数,并意识到没有转换3个标签。
不断变化的标签名称代码:
# Replace labels
if elem.tag == 'name':
elem.text = elem.text.replace('person','head')
在进行故障排除时,我尝试打印文件名,但它返回了3个名为“ .xml”的文件。运行一些测试后,我发现所有3个实例都指向同一文件。但是,我无法在文件夹中的任何位置找到此文件。知道为什么文件名仅作为扩展名读取吗?谢谢!
文件命名约定为:
XXXX.xml
PartA_XXXXX.xml
PartB_XXXXX.xml
解决方法
此文件夹上可能有一个名为.xml
的文件,但是默认情况下,以.
开头的文件在Linux上是隐藏的。
如果在文件夹上运行ls -la
,则可能会看到这些文件。
关于它打印了.xml
3次的事实,可能是因为此文件将标签name
设置为person
了3次,因为您没有{{1} },找到第一个匹配项。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。