如何遍历多个csv文件并将其内容输出到一个数组中?

时间:2017-03-17 22:39:33

标签: python arrays loops csv numpy

我在python中工作并尝试从多个LAZ文件中获取x,y,z坐标并将它们放入一个可用于其他分析的数组中。我正在尝试自动执行此任务,因为我有大约2000个文件转换为一个甚至10个数组。示例涉及两个文件,但我无法使循环正常工作。我想我没有正确命名我的变量。下面是我一直在尝试编写的示例代码(请注意,我对编程非常新,所以如果这是一个可怕的代码,请道歉。)

创建las文件列表,然后将它们转换为数组 - 尝试更好的自动化

import numpy as np
from laspy.file import File
import glob as glob

# create list of vegetation files to be opened
VegList = sorted(glob.glob('/Users/sophiathompson/Desktop/copys/Clips/*.las'))

for f in VegList:
    print(f)

    Veg = File(filename = f, mode = "r")  # Open the file
    points = Veg.get_points() # Grab all of the points from the file.
    print points #this is a check that the number of rows changes at the end
    print ("array shape:")
    print points.shape
    VegListCoords = np.vstack((Veg.x, Veg.y, Veg.z)).transpose()

print VegListCoords

此块读取两个文件,但使用文件列表中第二个文件的结果填充VegListCoords。我需要它来保存两者的记录。如果这是一种可怕的方式,我会对新的方式持开放态度。

1 个答案:

答案 0 :(得分:1)

您可以通过分配上次打开的文件中的值

来覆盖VegListCoords

相反,在开头初始化:

VegListCoords = []

而是:

VegListCoords.append(np.vstack((Veg.x, Veg.y, Veg.z)).transpose())

如果你想在最后的一个numpy数组中使用它们,请使用np.concatenate