用python读取.arrays txt文件?

时间:2012-06-22 12:01:04

标签: python arrays file numpy

传统上,要在python中读取一个充满数组的文件,我使用以下语法

x, y, z = loadtxt("myfile.txt", unpack=True)

适用于单阵列文件。

现在,我有一个更复杂的文件:

1.5 3.5 2.5 1.6
4
3
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
1 2
3 4
5 6

我想做的是以下事情:

1.5 3.5 2.5 1.6 - >我想把它们放在三个变量+ 1标量

的数组中

4 - > A = 4,我的第一个数组的行数

3 - > B = 3,我的第二个数组的行数

我想要在5个变量中加载A = 4行的第一个数组(比如命令loadtxt(“”,unpack = True)

1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20

我的第一个数组,B = 3行,我想加载2个变量(比如命令loadtxt(“”,unpack = True)

1 2
3 4
5 6

在python中有没有什么技术可以做这种事情?

非常感谢。

2 个答案:

答案 0 :(得分:6)

您正在指定自己的文件格式,这不是很有用。我建议使用现有格式,如JSON:

myfile.txt的:

{
    "a" : [
        [1, 2, 3, 4, 5],
        [6, 7, 8, 9, 10],
        [11, 12, 13, 14, 15],
        [16, 17, 18, 19, 20]
    ],
    "b" : [
    ...
    ]
}

read.py

import json
myfile = open("myfile.txt")
myVars = json.load(myfile)
myfile.close()
myVars['a']

答案 1 :(得分:3)

你可以像这样在python中打开一个文件:

f = open("myfile.txt")

现在您可以浏览所有行,并且可以在每行中将其拆分为空格:

for line in f.readlines():
    linearray = line.split(' ')
    arraylength = len(linearray)
    print("Array length: "+str(arraylength))
其余由你决定。