我有一个文本文件,大约有100000000行,以下各类型:
string num1 num2 num3 ... num500
string num1 num2 num3 ... num40
我想找到此文件中存在的最大数字。
我当前的代码读取每一行,将其按空格分割,然后在当前行中存储最大的数字。然后,将其与下一行的最大数量进行比较,并保留两者中较大的一个。
with open(filename,'r') as f:
prev_max = -1
for line in f:
line = [int(n) for n in line.split(' ')[1:]]
max = max_num(line)
if max > prev_max:
prev_max = max
但这需要永远。有一个更好的方法吗?
我也欢迎使用awk或其他shell命令的解决方案。
编辑:添加了我如何读取文件。
对于awk而言,这是一项微不足道的任务。
awk 'NR==1{m=$2} {for(i=2;i<=NF;++i) if(m<$i) m=$i} END{print m}' file
如果保证文件不全为零或负数,则可以删除NR==1{m=$2}
一部分。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句