Encontrei este artigo que descreve a "maneira QGIS GUI" para calcular os comprimentos de linha. http://www.qgistutorials.com/en/docs/calculating_line_lengths.html
Como posso calcular o comprimento de uma linha (recurso) em uma camada vetorial com código Python?
Como exemplo, quero saber o comprimento da linha amarela.
for layer in QgsMapLayerRegistry.instance().mapLayers().values():
features = layer.getFeatures()
for f in features:
...Ótimo código, no entanto, isso funciona apenas para a camada selecionada e somente a imprime. Com alguma ajuda de outros posts e Joseph, eu o transformei em um código que adiciona um atributo a todas as camadas do seu projeto com o comprimento.
fonte