找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 12290|回复: 1

[原创代码] python求txt文件中所有Z后面数字的最小值和最大值

[复制链接]
发表于 2015-11-7 19:08:56 | 显示全部楼层 |阅读模式
  1. #求txt文件中所有Z后面数字的最小值和最大值
  2. #依山居 19:04 2015/11/7
  3. #题目来源: http://www.bathome.net/thread-38027-1-1.html

  4. zl=[]
  5. with open("a.txt") as f:
  6.         for l in f:
  7.                 txtline=l.rsplit()
  8.                 for ll in txtline:
  9.                         #print(ll)
  10.                         if ll[0]=="Z":
  11.                                 x=float(ll[1:])
  12.                                 zl.append(x)
  13.                                 
  14. #方法一:使用python内建的max min函数
  15. print("大: ",max(zl))
  16. print("小: ",min(zl))
  17. #方法二: 使用sorted排序后取首位和末尾元素。
  18. zl=sorted(zl)
  19. print("小: ",zl[0])
  20. print("大: ",zl[-1])

  21. #总结是不管是max 还是sort 比较的对象都应该统一是数字。
  22. #所以处理前需要先丢掉字母Z并转成浮点数。

  23. """
  24. 输出:
  25. 大:  30.0
  26. 小:  -50.013
  27. 小:  -50.013
  28. 大:  30.0
  29. """
复制代码
 楼主| 发表于 2015-11-8 03:49:55 | 显示全部楼层
  1. #python正则求txt文件中所有Z后面数字的最小值和最大值
  2. #依山居 2:23 2015/11/8
  3. #题目来源: http://www.bathome.net/thread-38027-1-1.html
  4. #这个版本改用正则表达式处理文本.
  5. import re
  6. def ftxt(txt="a.txt"):
  7.         #global zl
  8.         zl=[]
  9.         reg=re.compile("Z(-?\d*\.?\d*)")
  10.         with open(txt) as f:
  11.                 for line in f:
  12.                         regresult=re.findall(reg,line)
  13.                         if regresult:
  14.                                 for r in regresult:                                       
  15.                                        zl.append(float(r))
  16.         print(len(zl))
  17.         return zl
  18.         
  19. zl=ftxt()
  20. print(zl)
  21. #方法一:使用python内建的max min函数
  22. print("大: ",max(zl))
  23. print("小: ",min(zl))
  24. #方法二: 使用sorted排序后取首位和末尾元素。
  25. #还可以用zl.sort(reverse=True) zl.reverse() 排序
  26. zl=sorted(zl)
  27. print("小: ",zl[0])
  28. print("大: ",zl[-1])
  29. #总结是不管是max 还是sort 比较的对象都应该统一是数字。
  30. #所以处理前需要先丢掉字母Z并转成浮点数。

  31. """
  32. 输出:
  33. 11
  34. [19.429, -14.477, -14.77, -15.012, -15.312, -16.012,
  35. -50.013, 30.0, -14.977, -15.012, -15.012]
  36. 大:  30.0
  37. 小:  -50.013
  38. 小:  -50.013
  39. 大:  30.0
  40. """
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 23:51 , Processed in 0.015660 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表