检查 simplekml 中是否存在文件夹 - python

Check if Folder exists in simplekml - python

这应该非常简单,但我现在已经花了一个小时在网站上没完没了。我在 python 中使用 simplekml 模块,如果文件夹不存在,我想创建一个。无论如何,我无法在不创建 for 循环的情况下检查文件夹是否已经存在。我认为下面的方法可行,但当然不行。

    kml = simplekml.Kml()
    testfold = kml.newfolder(name = 'testfolder')
    testfold2 = kml.newfolder(name = 'testfolder2')

    if 'testfolder' in kml.containers: 
        print True

唯一 return 折叠名称似乎是:

for x in kml.containers:
    print x.name

但当然我不希望遍历 kml 文件中的每个容器来查找文件夹,如果找不到则写入它。请告诉我有更好的方法吗?!

这是因为,kml.containers 持有 class simplekml.featgeom.Folder 的对象列表,而 name 是 class![=15 的属性=]

因此,当您检查 if 'testfolder' in kml.containers 时,它 returns false!您必须获取该容器的名称属性中的值,然后检查是否 testfolder

>>> [each for each in kml.containers]
[<simplekml.featgeom.Folder object at 0x2ac156d8e910>, <simplekml.featgeom.Folder object at 0x2ac156d8e890>]
>>> [x.name for x in kml.containers]
['testfolder', 'testfolder2']
>>> True if 'testfolder' in [x.name for x in kml.containers] else False
True