Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:从文本文件创建映射(元组)_Python_Python 3.x - Fatal编程技术网

Python:从文本文件创建映射(元组)

Python:从文本文件创建映射(元组),python,python-3.x,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"

我是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的。

这将为您提供您想要的:

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
line之后有4行时有效。如果有更多更换:

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

但在这种情况下,输出将为:

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

对不起,那是个打字错误。我已经重新编辑了文件,您的输入数据中
河之后的
4
怎么样?这是不是材料?在这种情况下,它如何不在
块中显示?我想首先测试它,以确保它在没有4的情况下首先运行。如果你希望人们不要无缘无故地投反对票,那么你可以将这4项包括在内。如果你一直问一些与你已经问过的问题类似的问题,比如这里,而没有给出反馈,那么请期待我们的否决票。a、b、c、d=输出[1:]@Duckenmaster我的解决方案严格针对你上面的例子,其中有4个值。查看我的更新答案以了解原因
("river",[(-500, -360),(-500, 360),(500, 360),(500,-360)])