将数据从txt文件读取到2D数组python中

时间:2018-07-14 18:11:39

标签: python arrays parsing read-data

我对python还是很陌生,我想知道我是否可以解决我要解决的问题:

我想设计一个循环来遍历目录中的每个文件,并将每个文件的数据放入2D数组中。我有一个很大的.txt文件目录,其中包含22行,每行2个数字。

如何组织文件内容的一个示例是:

# Start of file_1.txt
1 2
3 4
5 6
7 8

# Start of file 2.txt
6 7
8 9
3 4
5 5

我想将由空格分隔的数据读入数组的前两个引用位置(即array = [x0][y0]),然后在换行符处,将以下数据写入数组的下一个位置(即{ {1}})。我看到很多人说要使用array=[x1][y2]numpy和其他方法,但这进一步使我感到困惑。

我正在寻找的输出是:

scipy

我对如何遍历目录中的文件并同时将它们放入2D数组感到有些困惑。到目前为止,我的代码是:

[[1,2],[3,4],[5,6],[7,8], ...]

目前,以上代码不适用于两个目录,但适用于一个目录。任何帮助,将不胜感激。

2 个答案:

答案 0 :(得分:2)

您在一开始就定义了array2D错误,这不是有效的Python语法。以下代码应该起作用:

import os

d = 'HERE YOU WRITE YOUR DIRECTORY'

array2D = []

for filename in os.listdir(d):
    if not filename.endswith('.pts'):
        continue

    with open(filename, 'r') as f:
        for line in f.readlines():
            array2D.append(line.split(' '))

print(array2D)

答案 1 :(得分:1)

为简单起见,我建议在与要读取的文件相同的目录中运行python脚本。否则,您将必须定义包含文件的目录的路径。

此外,我不确定是否只有您会使用此程序,但是在代码的FileIO部分周围定义try-except块可能是一个好主意,以防止程序无法运行时崩溃出于任何原因从文件读取。

下面的代码读取包含python脚本的目录中的所有文件,并创建文件内容的2D列表(此外,它以确保您拥有整数列表而不是字符串的方式显式重建1D列表。 ):

XPathExecutable exe = xPath.compile(query);
XPathSelector selector = exe.load();
selector.setContextItem(xmlDocument);