从文本文件中读入浮点数据,是最常见的任务之一,python没有scanf这样的输入函数,但我们可以利用正规表达式从读入的字符串中提取出浮点数
复制代码 代码如下:
import re
fp = open(\’c:/1.txt\’, \’r\’)
s = fp.readline()
print(s)
aList = re.findall(\'([-+]?\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?\’,s) #使用正规表达式搜索字符串
print(aList)
for ss in aList:
print(ss[0]+ss[2])
aNum = float((ss[0]+ss[2]))
print(aNum)
fp.close()
文件内容:
复制代码 代码如下:
12.540 56.00 1.2e2 -1.2E2 3.0e-2 4e+3
输出结果:
复制代码 代码如下:
12.540 56.00 1.2e2 -1.2E2 3.0e-2 4e+3
[(\’12.540\’, \’.540\’, \’\’), (\’56.00\’, \’.00\’, \’\’), (\’1.2\’, \’.2\’, \’e2\’), (\’-1.2\’, \’.2\’, \’E2\’), (\’3.0\’, \’.0\’, \’e-2\’), (\’4\’, \’\’, \’e+3\’)]
12.540
12.54
56.00
56.0
1.2e2
120.0
-1.2E2
-120.0
3.0e-2
0.03
4e+3
4000.0
注解:
按行读入文本文件,利用正规表达式找出字符串中的浮点数,使用float()函数将字符串转换为浮点数