0

我有一个这种类型的 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
4

3 回答 3

2

您可以使用附加列表。

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

输出

>> lst_valori[0]
1
>> lst_valori[-1]
58
于 2020-11-09T13:05:19.043 回答
1

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

resultList.append(valori)

然后你会通过切片列表得到第一个和最后一个值

第一项 resultList[0]

最后一项 resultList[-1]

于 2020-11-09T13:06:43.787 回答
0

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

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)

于 2020-11-09T13:31:44.177 回答