Python:从文本文件创建一个Map(元组)

时间:2014-04-19 01:14:16

标签: python python-3.x

我是python的新手,我通过解决棘手问题学到了很多东西。我需要社区帮助解决这个问题。我有一个包含以下数据的文本文件。

river,4
-500, -360
-500, 360
500, 360
500,-360

sand, 3
400, 300
500, 300
200, 100

我的问题是我需要将此文件加载并创建一个如下所示的tuple

block=("river",4,(-500, -360),(-500, 360),(500, 360),(500,-360)), ("sand", 3,(400,300), (500, 300), (200, 100))

这是我目前的代码

file=open("file.txt", "r")
lineString=file.readlines()

请不要无缘无故地向我投票。我是新来的社区和学习python。

1 个答案:

答案 0 :(得分:0)

这会给你你想要的东西:

import csv

output = []
block = ()
with open('input_file') as in_file:
    csv_reader = csv.reader(in_file)
    for row in csv_reader:
        output.append(tuple(row))

first_element = output[0]
a, b, c, d = output[1:]
block = (first_element[0], a, b, c, d)

打印

("river",(-500, -360),(-500, 360),(500, 360),(500,-360))

我必须说你组织数据的方式对我来说毫无意义。上述代码仅在river, 4行后有4行时才有效。如果有更多替换:

a, b, c, d = output[1:]
block = (first_element[0], a, b, c, d)

block = (first_element[0], output[1:])

但在这种情况下输出将是:

("river",[(-500, -360),(-500, 360),(500, 360),(500,-360)])