猿问

如何将制表符分隔的文件读入具有不等长行的 Python?

我有一个文本文件,它是测量结果。当对象不在正确的测量位置时,它无法进行全套测量,这会在文本文件中产生不等长的行。

如何用 Python 读取它?我是否必须用空格填充文本文件中的空格?

数据是什么样的:

我试过的代码:


from numpy import loadtxt

lines = loadtxt(file_to_read, comments="#", delimiter="\t", unpack=False)

但它给出了一个错误:


ValueError: could not convert string to float: 'Height\tLength\tVolume\tSpeed\tWeight'

然后我尝试了:


file_to_read = ('/Users/path/to/file//dummy_data.txt')

file_object = open(file_to_read, 'r')

file_object.read()

print(file_object)

但它什么也没返回,我喜欢查看数据以查看其格式是否正确。


元芳怎么了
浏览 206回答 3
3回答

ibeautiful

使用熊猫应该可以解决问题:import pandas as pdpd.read_csv('data.csv', sep='\t').to_numpy()输出:array([[1. , 0.5, 0.2],       [0.1, nan, nan],       [nan, 0.1, 5. ]])其中data.csv包含:A   B   C1   .5  .2.1          .1  5

DIEA

该错误消息表明您正在尝试导入标题行。使用skiprows参数 toloadtxt跳过此行:lines = loadtxt(file_to_read, comments="#", delimiter="\t", skiprows=1, unpack=False)

慕桂英546537

它还可以轻松地与 pandas 一起使用,将标题保留为列:import pandas as pd data = pd.read_csv(file_to_read, sep='\t')
随时随地看视频慕课网APP

相关分类

Python
我要回答