读取txt文件并将各个列保存为列表

2024-05-26 19:55:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图读取一个.txt文件,并将每列中的数据保存为列表。文件中的每一列都包含一个变量,稍后我将使用该变量绘制图形。我已经尝试过寻找最好的方法来实现这一点,大多数答案都建议打开文件,阅读它,然后拆分列或将列保存为列表。.txt中的数据如下所示-

0   1.644231726
0.00025 1.651333945
0.0005  1.669593478
0.00075 1.695214575
0.001   1.725409504

分隔符是一个空格''或一个制表符'\t' 。我使用以下代码尝试将列附加到变量中-

import csv

with open('./rvt.txt') as file:
    readfile = csv.reader(file, delimiter='\t')
    time = []
    rim = []
    for line in readfile:
        t = line[0]
        r = line[1]
        time.append(t)
        rim.append(r)

print(time, rim)

但是,当我尝试使用print(time, rim)打印列表、时间和rim时,我收到以下错误消息-

r = line[1]
IndexError: list index out of range

但是,如果我注释掉r=line[1]rim.append(r)部分,我只能打印“时间”。我如何处理这个问题?提前谢谢你


Tags: 文件csv数据txt图形列表timeline
3条回答

我建议如下:

import pandas as pd

df=pd.read_csv('./rvt.txt', sep='\t'), header=[a list with your column names])

然后,您可以使用list(您的_列)将列作为列表使用

问题在于分隔符。数据集包含多个空格“”

当您使用'\t'和 printline您可以看到它没有用分隔符分隔行

例如:

['0   1.644231726']
['0.00025 1.651333945']
['0.0005  1.669593478']
['0.00075 1.695214575']
['0.001   1.725409504']

要获得所需的结果,可以使用(空格)作为分隔符,并使用filter空值:

readfile = csv.reader(file, delimiter=" ")
time, rim = [], []
for line in readfile:
    line = list(filter(lambda x: len(x), line))
    t = line[0]
    r = line[1]

以下是执行此操作的代码:

import csv

with open('./rvt.txt') as file:
    readfile = csv.reader(file, delimiter=” ”)
    time = []
    rim = []
    for line in readfile:
        t = line[0]
        r = line[1]
        time.append(t)
        rim.append(r)
print(time, rim)

相关问题 更多 >

    热门问题