【问题标题】:how to take a line from a text to use as input for a function python如何从文本中取一行作为函数python的输入
【发布时间】:2016-05-23 18:49:37
【问题描述】:

大家好,我有一个填充了一些地理数据的文本,如下所示:

[(-76.34666,40.006886),(-76.34666,40.073017),(-76.25411,40.073017),(76.25411,40.006886)] [(-84.82031,38.403187)),(-84.82031,42.327133),(-80.51862,42.327133),(-80.51862,38.403187)]

现在我想将它逐行作为多边形函数的输入。在我尝试迭代之前,我首先尝试用一行来制作它,但它不会工作。这是我现在的代码:

    from shapely.wkt import loads as load_wkt
    from shapely.geometry import Point, Polygon

    f = open('koordinat.txt', 'r')
    line = f.readline()
    p = Polygon(line)
    print (p.centroid)

“p = Polygon(line)”和 “一个 LinearRing 必须至少有 3 个坐标元组”,但是当取其中一条线并将其放入功能手册中时,它可以正常工作。

有什么帮助吗?一个可能的迭代的例子也很好:)

【问题讨论】:

  • line 仍然是一个字符串。将其转换为元组列表,也许这会起作用?
  • 当您从文件中读取该行时,您会得到一个字符串。您需要将字符串转换为坐标列表。

标签: python input iteration shapely


【解决方案1】:

您将一个字符串传递给Polygon,但它需要一个坐标列表(数字)。

试试这个:

import ast
line = ast.literal_eval(f.readline())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多