这应该是非常简单的,但我现在已经在它上面一个小时了,没有结束的网站。我正在使用python中的simplekml模块,如果文件夹不存在,我想创建一个文件夹。在没有创建for循环的情况下,我找不到任何方式来检查文件夹是否已经存在。我认为下面的方法会起作用,但当然不是。
kml = simplekml.Kml()
testfold = kml.newfolder(name = 'testfolder')
testfold2 = kml.newfolder(name = 'testfolder2')
if 'testfolder' in kml.containers:
print True唯一返回文件夹名称的似乎是:
for x in kml.containers:
print x.name但当然,我不希望遍历kml文件中的每个容器,在查找文件夹之前,如果没有找到,则写入该文件夹。请告诉我还有更好的办法吗?!
发布于 2017-08-08 12:11:29
这是因为,kml.containers保存simplekml.featgeom.Folder类的对象列表,而name是该类的属性!
因此,当您检查if 'testfolder' in kml.containers时,它将返回false!您必须获取该容器的name属性中的值,然后检查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
Truehttps://stackoverflow.com/questions/45558778
复制相似问题