Python 如何从具有不同列数的文件中读取最后一列的值?

Python 如何从具有不同列数的文件中读取最后一列的值?,python,python-3.x,Python,Python 3.x,我有一个包含数据的文本文件。 每行有一个或两个单词和一个数字,所以问题是,有时有两列,有时有三列 aaa bbb 4 ccc 10 ddd eee 3 fff 5 我只需要那些号码。如何在Python中将它们复制到列表中 我试过了 file = open("data.txt","r") data = file.readlines() result = [] for line in data: result.append(line.split(' ')[-1]) file.close()

我有一个包含数据的文本文件。 每行有一个或两个单词和一个数字,所以问题是,有时有两列,有时有三列

aaa bbb 4
ccc 10
ddd eee 3
fff 5
我只需要那些号码。如何在Python中将它们复制到列表中

我试过了

file = open("data.txt","r")
data = file.readlines()
result = []
for line in data:
    result.append(line.split(' ')[-1])
file.close()
但我不知道如何去掉数字末尾的“\n”?因为当我更改
result.append(line.split(“”)[-1])

result.append(int(line.split(“”)[-1]))
,它不起作用。
有更好的方法吗?

如果行号不相关:

import re

s = '''aaa bbb 4
ccc 10
ddd eee 3
fff 5'''

matches = re.findall('\d+', s)
for match in matches:
    print(match)

如果你把每一行按空格分开,你会得到一个行中所有内容的列表。然后可以使用
lst[-1]
获取该列表中的最后一个元素。例如:

for line in file:
    lst=line.split(" ")
    lastCol=lst[-1]
这应该只得到每行的最后一列。如果您还需要将其存储为数字,则可以将其作为最后一行执行
lastCol=int(lst[-1])

编辑:

您可以使用
strip()
删除
“\n”
和行末尾的所有其他空白:

lst=line.strip().split(" ")

当python读取文本文件时,它还读取换行符(
'\n'
在每行末尾)。您可能需要删除这些字符,因为这些是数字,所以在添加到列表之前,将值强制转换为
int

file = open("data.txt","r")
data = file.readlines()
result = []
for line in data:
    result.append(int(line.strip().split(' ')[-1])) # the only line changed 
file.close()

print(result)
输出:

[4, 10, 3, 5]

逐行读取文件,在每行中使用正则表达式匹配组提取数字,将其转换为
int
,即可完成。数字所在的行号是否相关?若要删除
'\n'
字符,请使用:使用
result.append(line.strip().split('.[-1])
。但如果您希望将它们作为数字添加到int:
result.append(int(line.strip().split(“”)[-1])
,那么您可能会像预期的那样得到
[4,10,3,5]
[4, 10, 3, 5]