导入txt文件,数据由列和空行分隔

问题描述 投票:0回答:1

我有一个 txt 文件,其中有 3 列浮点数需要导入,但需要用列和空行分隔。

例如txt文件数据如下

1.0    1.1    1.2
1.3    1.4    1.5

2.0    2.1    2.2
2.3    2.4    2.5

我需要将数据导入到Python中

column 1-1: 1.0, 1.3
column 2-1: 1.1, 1.4
column 3-1: 1.2, 1.5

column 1-2: 2.0, 2.3
column 2-2: 2.1, 2.4
column 3-2: 2.2, 2.5

我能够导入 txt 文件并使用按列分隔

a,b,c = np.loadtxt('file.txt', dtype=float, unpack=True)
但此方法不会读取空行,我无法进一步用空行分隔数据。

python import delimiter txt
1个回答
0
投票

那么为什么不为此制定自己的算法呢?在我看来,以某种方式配置 numpy 或为其获取模块要容易得多。我不得不花 5 分钟思考并为此制定一个算法

def parse_file(file_data):
    all_numbers = []
    current_number = ""
    current_number_group: list[float] = []
    for letter in file_data:
        if letter == "\n":
            all_numbers.append(current_number_group)
            current_number_group = []
        elif letter == " " and current_number != "":
            current_number_group.append(float(current_number))
            current_number = ""
        elif letter != " ":
            current_number += letter
    
    if current_number != "":
        current_number_group.append(float(current_number))
    return all_numbers

这个算法不使用numpy(我使用的是在线解释器rn,所以我无法安装软件包)而且它也很慢,所以你最好制作自己的版本。

© www.soinside.com 2019 - 2024. All rights reserved.