我有一个格式如下的文件:
-2000 -2000 -2000 # (*THE FRAME, origin point*), 1
-2000 379 -2000 # 2
2000 379 -2000 # 3
2000 -2000 -2000 # 4
-2000 -2000 -2000 # 1
j
2000 379 -1190 # 7
2000 -2000 -1190 # 8
-2000 -2000 -1190 # 5
我需要在 python 中读取此文件并将其存储在以下格式的列表中:
[[[-2000, -2000, -2000], [-2000 379 -2000], [2000, 379, -2000], [2000, -2000, -2000], [-2000, -2000, -2000]],[[2000, 379, -1190], [2000, -2000, -1190], [-2000, -2000, -1190]]]
到目前为止,我已读取文件并将值存储在列表中
file = open('filename', 'r')
vlist = file.readlines()
file.close
然后我将每个“j”值转换为 [-1,-1,-1] 并将该值用作列表之间的中断。
points = []
points = [list(map(int,elem.split())) if elem.strip().lower() != "j" else [-1, -1, -1] for elem in vlist]
然后使用 itertools 我可以将此列表拆分为每次 [-1,-1,-1] 出现在列表中的组:
pointLists = [list(group) for val, group in groupby(points, lambda x: x == [-1,-1,-1]) if not val]
我相信这会给我我想要的输出,但是它不适用于我显示在顶部的文件示例,因为它不会删除 # 和它后面的值。
我不确定如何从列表中删除 # 和后面的值,所以任何帮助都会有很大帮助谢谢。
enter code here