使用 Fastkml 读取 KML 文件

问题描述 投票:0回答:3

我已经对这个特定的 Python 模块进行了相当多的搜索,但未能找到为我指明正确方向的来源。

我正在尝试读取 KML 文件并显示文件夹内的所有功能,我相信我正在使用 fastkml 实现此目的,但我遇到了问题。

使用以下代码一切正常,直到行 len(k.features)。我尝试打印它,添加文档中所示的引号,但没有任何效果。有人能指出我正确的方向吗?

谢谢。

示例:https://github.com/cleder/fastkml

代码:

from fastkml import  kml
doc = file("Allpoints.kml").read()
k = kml.KML()
k.from_string(doc)
len(k.features())
python kml
3个回答
7
投票

features()
返回一个可以迭代的生成器对象,但它没有
len
函数:

for f in k.features():
    print(f.name)

如果您确实需要长度,那么您可以使用列表理解将生成器转换为列表:

features = list(k.features())
len(features)

0
投票

O(1) 解...

from fastkml import  kml
doc = file("Allpoints.kml").read()
k = kml.KML()
k.from_string(doc)
len(k._features)

0
投票

1.0版fastkml的API略有不同:

from fastkml.utils import find, find_all
from fastkml import KML
from fastkml import Placemark, Point, Folder

k = KML.parse("Allpoints.kml")
print(f.features)

KML 文件的根目录中应该只有一个文档、文件夹、地标,因此这可能只是一个元素。

查看文档,了解如何在文档中查找特定元素。

© www.soinside.com 2019 - 2024. All rights reserved.