2

传统上,要在 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

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

1 2
3 4
5 6

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

非常感谢你。

4

2 回答 2

6

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

我的文件.txt:

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

读取.py

import json
myfile = open("myfile.txt")
myVars = json.load(myfile)
myfile.close()
myVars['a']
于 2012-06-22T12:34:27.203 回答
3

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

f = open("myfile.txt")

现在您可以遍历所有行,并且在每一行中,您可以将其用空格分隔:

for line in f.readlines():
    linearray = line.split(' ')
    arraylength = len(linearray)
    print("Array length: "+str(arraylength))

其余的取决于你。

于 2012-06-22T12:08:56.960 回答