如何在 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)
我有一个这种类型的 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)