使用列表推导读取文件中的所有行

时间:2012-10-09 12:08:11

标签: python file-io list-comprehension

我有一个简单的问题,对不起,如果我在stackoverflow中发布。我是python的新手,我不记得我怎么能在列表压缩中读取x,y,z

我的文件是x,y,z文件,其中每一行都是一个点:

x1,y1,z1
x2,y2,z2
x3,y3,z3
........

inFile = "Myfile.las"

with lasfile.File(inFile, None, 'r') as f:
     # missing part
     points =[]

我希望保存只有x和y的对象

提前致谢并抱歉这个简单的问题

1 个答案:

答案 0 :(得分:6)

你想要一个x和y坐标列表,这很容易:

with lasfile.File(inFile, None, 'r') as f:
     # missing part
     points = [line.split(',')[:2] for line in lasfile]

如果这些坐标是整数,您可以通过快速调用map()将它们转换为python int(来自str):

points = [map(int, line.split(',')[:2]) for line in lasfile]

在python 3中,map是一个生成器,最好使用嵌套列表解析:

points = [[int(i) for i in line.split(',')[:2]] for line in lasfile]

这将导致列表列表:

[[x1, y1], [x2, y2], ...]