用python读取.txt文件?

用python读取.txt文件?,python,arrays,file,numpy,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.53.52.51.6->我想把它们放在一个由三个变量+1个标量组成的数组中 4->A=4,我的第一

传统上,在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.53.52.51.6
->我想把它们放在一个由三个变量+1个标量组成的数组中

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

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

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

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

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


非常感谢。

您可以像这样用python打开一个文件:

f = open("myfile.txt")
现在,您可以遍历所有行,在每行中,您可以将其拆分为一个空格:

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

其余的由您决定。

您正在指定自己的文件格式,这不是很有用。我建议使用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']

这是一个非常简单的解析任务。您尝试过什么?我不太懂python,所以我不知道如何解析具有多个数组大小的文件。我不理解第一行。另外,如何区分nx1数组和数组长度?只要文件中的行之间保证只有1个空格,我就喜欢这种方法每个数字。例如
len(“1-2-3”).split(“-”)
=3,而
len(“1-2-3”).split(“-”)
=5。您可能希望先将从文件中读取的行分隔开一行。编辑:我尝试在注释中使用空格,但格式不正确。不过,对于破折号也有相同的想法。您不需要
.split(“”)
,只需执行
.split()
(1)
打开(“myfile.txt”)作为f:
是一个更好的习惯;(2)
对于f:
中的行:
与调用
.readlines()
一样有效,并且具有更好的内存属性;(3)
linearray=line.split()
将处理多个空格和制表符。感谢您的评论。但我也想让代码尽可能自我描述。使用您的建议是更好的练习,但在我看来,这更多是关于基本理解。
{
    "a" : [
        [1, 2, 3, 4, 5],
        [6, 7, 8, 9, 10],
        [11, 12, 13, 14, 15],
        [16, 17, 18, 19, 20]
    ],
    "b" : [
    ...
    ]
}
import json
myfile = open("myfile.txt")
myVars = json.load(myfile)
myfile.close()
myVars['a']