使用python代码读取并保存列表中文件txt中的数据



这是我的文件.txt:

1,  AC233FA28A31,   -64,                            1.0741886104850389
1,  AC233FA28A32,   -67,                            4.990341223352587e+16
2,  AC233FA28A31,   -66,                            1.240560004316543
2,  AC233FA28A32,   -61,                            4190057960.7655835
3,  AC233FA28A31,   -64,                            1.0741886104850389
3,  AC233FA28A32,   -65,                            685898450406726.6

如何读取第三列并将数据保存在列表中?

Python代码的输出必须是这个列表=[-64,-67,-66,-61,-64….]

使用Pandas:可以轻松做到这一点

import pandas as pd

df = pd.read_csv('file.txt', sep='s+', header=None)
res = df[2].tolist()
print(res)

您的列表将保存在res中。

类似这样的东西:

with open('file.txt', 'r+') as file:
# split in lines
for line in file.read().split('n'):
# Parse the single lines
riga = line.split(',')
riga[0] = int(riga[0])
riga[1] = riga[1].strip()
riga[2] = int(riga[2])
riga[3] = int(riga[3])
lista.append(riga)

否则,如果您想将其作为数据帧处理,则应该使用pandasPython的库,正如@Flavio所建议的那样。

试图使其易于理解:

with open(r"file.txt", "r") as f:
data = f.readlines()
third_column = []
for line in data:
value = line.split(",")[2].lstrip(" ")
third_column.append(value)
print(value)

首先,将文件的行读取到一个数组data中,然后迭代每一行,用字符,line.split(",")分割字符串,用[2]选择第三个元素,用lstrip(" ")再次将结果字符串的左侧去掉所有空格,将值附加到列表third_column中,并打印值

您可以使用csv执行此操作。

import csv
col1 = []
col2 = []
col3 = []
with open('file.txt') as f:
for row in csv.reader(f):
col1.append(row[0])
col2.append(row[1])
col3.append(float(row[2]))
print(col3)

如果您不想使用Pandas库,可以使用csv:

with open("myfile.txt") as file:
data= csv.reader(file)
my_list = []
for row in data:
my_list.append(int(row[2].strip()))

您可以使用panda和read_csv。重要的是,您应该使用header=None,因为file.txt中没有可用的列名

import pandas as pd
df = pd.read_csv('file.txt', header=None)
# if you really want a list
out = list(df[2].values)

最新更新