如何在 python 中仅从 txt 文件中提取第一个和最后一个数值?

How to extract only the first and last numerical value from a txt file, in python?

我有一个这种类型的 txt 文件:

1,23,4,5
4.6,5,7,8.9
2,3,45,21
2,4.2,5,6
58,a,b,c,d
d,e,f,g,h

我只想提取第一个和最后一个数值。在我的下一个程序中,我能够从字符串中删除字符并得到一个包含数字的字符串:

import re
with open("C:\testo.txt", "r") as fp:
    lines=fp.readlines()
    for i in range(0, len(lines)):
        x=lines[i]
        result=re.match('\d+', x)
        if result != None:
           valori=result.group()
           print(valori)

我的输出是:

1
23
4
5
4.6
5
7
8.9
2
3
45
21
2
4.2
5
6
58

现在我想要的输出是:

1 
58

您可以使用其他列表。

if result != None:
       lst_valori.append(result.group())

输出

>> lst_valori[0]
1
>> lst_valori[-1]
58

在您的 if result != None: 中,您可以将结果附加到列表中,而不是打印结果

resultList.append(valori)

然后您将通过切片列表获得第一个和最后一个值

对于第一项 resultList[0]

最后一项 resultList[-1]

无需读取内存中的整个文件:一次一行就够了

first = None
last = None
with open("C:\testo.txt") as fp:
    for row in fp:
        for el in row.split(','):
            try:
                n = float(el)
            except ValueError:
                continue
            last = el
            if first is None:
                first = el

print(first, last)