python从txt文件中读取数字,并且判断其大小。
关注:289 答案:2 mip版
解决时间 2021-01-30 22:59

提问者耍硪ミ倪配么
2021-01-30 13:19
txt文件名假设为a,格式如下:
文件的前面部分有n行,第n+1行开始为数字:
0.00000000E+00 1.99000000E-02 1.05000000E+00 0.00000000E+00 3.88519671E+02
4.20000000E-02 1.99000000E-02 1.00800000E+00 0.00000000E+00 4.23216155E+02
8.40000000E-02 1.99000000E-02 9.66000000E-01 0.00000000E+00 4.67920285E+02
1.26000000E-01 1.99000000E-02 9.24000000E-01 0.00000000E+00 4.89975818E+02
1.68000000E-01 1.99000000E-02 8.82000000E-01 0.00000000E+00 5.01845166E+02
2.10000000E-01 1.99000000E-02 8.40000000E-01 0.00000000E+00 5.10017363E+02
2.52000000E-01 1.99000000E-02 7.98000000E-01 0.00000000E+00 5.15927207E+02
2.94000000E-01 1.99000000E-02 7.56000000E-01 0.00000000E+00 5.18914324E+02
3.36000000E-01 1.99000000E-02 7.14000000E-01 0.00000000E+00 5.18683254E+02
我想对第5行最后一列对应的数字进行判断(即5.01845166E+02),若在500~520范围之外则修改参数重新计算;若在范围之内则输出最后一列的所有数据到另一个文件b。
请问该怎么实现啊。
最佳答案

二级知识专家我有我风格
2021-01-30 14:28
#!/usr/bin/python
# encoding: utf-8
import re
context = """
0.00000000E+00 1.99000000E-02 1.05000000E+00 0.00000000E+00 3.88519671E+02
4.20000000E-02 1.99000000E-02 1.00800000E+00 0.00000000E+00 4.23216155E+02
8.40000000E-02 1.99000000E-02 9.66000000E-01 0.00000000E+00 4.67920285E+02
1.26000000E-01 1.99000000E-02 9.24000000E-01 0.00000000E+00 4.89975818E+02
1.68000000E-01 1.99000000E-02 8.82000000E-01 0.00000000E+00 5.01845166E+02
2.10000000E-01 1.99000000E-02 8.40000000E-01 0.00000000E+00 5.10017363E+02
2.52000000E-01 1.99000000E-02 7.98000000E-01 0.00000000E+00 5.15927207E+02
2.94000000E-01 1.99000000E-02 7.56000000E-01 0.00000000E+00 5.18914324E+02
3.36000000E-01 1.99000000E-02 7.14000000E-01 0.00000000E+00 5.18683254E+02
"""
patt = re.compile(r"\d\.\d+E[+-]\d{2}")
array = []
for ln in filter(None, context.splitlines()):
array.append(map(float, patt.findall(ln)))
debug = True
def debugView(obj):
import pprint
if debug:
pprint.pprint(obj)
debugView(array)
你的数据来自文本文件,可以用 for ln in filter(None, open(datafile, 'rt'))
替代 for ln in filter(None, context.splitlines())
全部回答

1楼轉角離身
2021-01-30 15:55
python3.x
result=[]
with open('a.txt','r') as f:
for line in f:
result.append(list(map(float,line.split(','))))
print(result)
python2.7
result=[]
with open('a.txt','r') as f:
for line in f:
result.append(map(float,line.split(',')))
print(result)
我要举报
如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
→点此我要举报以上信息!←
推荐资讯
大家都在看
本文介绍如何使用Python从txt文件中读取数字,并判断它们是否在特定范围内。示例代码展示了如何解析文件,提取数字,并进行大小判断。

被折叠的 条评论
为什么被折叠?



