[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 15# 依山居


   多谢您回复,但我不会用python,不知这代码保存为什么格式,是否要编辑

TOP

回复 9# pcl_test


    我也顺便给版主反馈一下。不需要逐行处理。
  1. #python正则求txt文件中所有Z后面数字的最小值和最大值3
  2. #依山居 10:57 2015/11/11
  3. #题目来源: http://www.bathome.net/thread-38027-1-1.html
  4. #这个版本使用read()直接读入整个文件内容然后正则匹配.
  5. #经过测试比逐行处理,速度快了3-5倍
  6. #总结:一次性读入正则匹配整个文件内容,处理速度快了3-5倍。
  7. #要不是自己起心生成数据来测试,就被带到沟里了。
  8. import time
  9. start=time.time()
  10. import re
  11. def ftxt(txt="b.txt"):
  12.         #global zl
  13.         zl=[]
  14.         reg=re.compile("Z(-?\d*\.?\d*)")
  15.         with open(txt) as f:
  16.                 c=f.read()
  17.                 regresult=re.findall(reg,c)
  18.                 if regresult:
  19.                         for r in regresult:
  20.                                 zl.append(float(r))                           
  21.         return zl
  22.         
  23. zl=ftxt()
  24. print("list长度: ",len(zl))
  25. #方法一:使用python内建的max min函数
  26. print("大: ",max(zl))
  27. print("小: ",min(zl))
  28. #方法二: 使用sorted排序后取首位和末尾元素。
  29. #还可以用zl.sort(reverse=True) zl.reverse() 排序
  30. zl=sorted(zl)
  31. print("小: ",zl[0])
  32. print("大: ",zl[-1])
  33. #总结是不管是max 还是sort 比较的对象都应该统一是数字。
  34. #所以处理前需要先丢掉字母Z并转成浮点数。
  35. end=time.time()
  36. pt=end-start
  37. print("程序运行时间:",pt)
  38. try:
  39.     input("按回车退出")
  40. except SyntaxError:
  41.     pass
  42. """
  43. 输出:
  44. list长度:  1921678
  45. 大:  999.0
  46. 小:  -99.0
  47. 小:  -99.0
  48. 大:  999.0
  49. 程序运行时间: 7.053403377532959
  50. ""
复制代码

TOP

回复 16# raozhao2008


    下载安装python3
代码存为xx.py

TOP

第三方http://www.bathome.net/s/tool/index.html?key=gawk
  1. #*&cls&@gawk -f "%~f0" "1.txt">con&pause&exit
  2. {
  3.     for(i=1;i<=NF;i++){if($i~/Z-?[0-9]+\.?[0-9]*/)a[substr($i,2)]=substr($i,2)*1}
  4. }
  5. END{
  6.     len=asort(a,b); printf("最大%.3f\n最小%.3f\n",b[len],b[1]);
  7. }
复制代码

TOP

返回列表