免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 8637 | 回复: 27
打印 上一主题 下一主题

查找txt文件中第二列最大值 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-01-23 12:29 |只看该作者 |倒序浏览
本帖最后由 hothat007 于 2014-01-23 13:39 编辑

DYC-P072-2 2014-01-21 12.zip (18.85 KB, 下载次数: 24) 新手学习Python不久,在编写查找文本中的最大值,但是代码出现问题,请大家指导谢谢
  1. #coding:utf-8

  2. import os

  3. filename = 'DYC-P072-2 2014-01-21 12.txt'
  4. fr = 28
  5. to = 29

  6. filepath = os.getcwd()
  7. fileaddress = filepath + '\\' + filename
  8. f = open(fileaddress)

  9. i = 1
  10. count = 0
  11. buf = ''
  12. num = 0

  13. for lines in f.readlines():
  14.     count = count + 1
  15.     line = lines.split()
  16.     if (float(line[0]) >= fr) and (float(line[0]) <= to):
  17.         if i == 1:
  18.             buf = line
  19.             i = 0
  20.         elif line[1] > buf[1]:
  21.             buf = line
  22.             num = count
  23.             print line[1]
  24.             print buf
  25.             os.system('pause')
  26.    
  27. print buf
  28. print num

  29. f.close()

  30. os.system('pause')



复制代码

如图我先查找到153这行数
可是我的代码运行结果却是这样的:

论坛徽章:
0
2 [报告]
发表于 2014-01-23 12:32 |只看该作者
fr=28
to=29
就是想查找第一列的范围,在这个范围里比较第二列的值,找最大的,可是找不到呢

论坛徽章:
0
3 [报告]
发表于 2014-01-23 13:22 |只看该作者
各位路过的留个名呗

论坛徽章:
4
金牛座
日期:2013-10-11 16:12:50卯兔
日期:2014-07-31 09:17:19辰龙
日期:2014-08-08 09:28:02狮子座
日期:2014-09-14 20:32:05
4 [报告]
发表于 2014-01-23 13:27 |只看该作者
楼主,你是不是应该贴个测试用的数据呢?

论坛徽章:
0
5 [报告]
发表于 2014-01-23 13:28 |只看该作者
你第25行代码没有对line[1]进行格式转换,它默认为按字符串比较了,改了就成了。

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
6 [报告]
发表于 2014-01-23 13:32 |只看该作者
楼主, 你弄个图上来, 我们没办法拿到你的测试数据. 总不成又来扣图吧?!

论坛徽章:
4
金牛座
日期:2013-10-11 16:12:50卯兔
日期:2014-07-31 09:17:19辰龙
日期:2014-08-08 09:28:02狮子座
日期:2014-09-14 20:32:05
7 [报告]
发表于 2014-01-23 13:36 |只看该作者
本帖最后由 ssfjhh 于 2014-01-23 13:38 编辑

没看懂你那个条件判断中还想另外输出什么信息,这个代码只输出最大值。
  1. #coding:utf-8

  2. import os

  3. filename = 'DYC-P072-2 2014-01-21 12.txt'
  4. fr = 28
  5. to = 29

  6. #filepath = os.getcwd()
  7. #fileaddress = filepath + '\\' + filename
  8. with open(fileaddress, 'r') as f:
  9.     maxnum = 0

  10.     for lines in f.readlines():
  11.         count += + 1
  12.         line = lines.split()
  13.         if fr <= float[line[0] <= to and int(line[1]) > maxnum:
  14.             maxnum = int(line[1])
  15.     print(maxnum)

  16. os.system('pause')
复制代码

论坛徽章:
5
技术图书徽章
日期:2014-04-18 08:52:38午马
日期:2014-04-30 13:28:11摩羯座
日期:2014-11-07 13:34:122015年亚洲杯之日本
日期:2015-03-12 14:01:4915-16赛季CBA联赛之北京
日期:2017-06-28 17:25:56
8 [报告]
发表于 2014-01-23 13:37 |只看该作者
  1. elif line[1] > buf[1]:
复制代码
需要加 int的吧

论坛徽章:
0
9 [报告]
发表于 2014-01-23 13:37 |只看该作者
回复 4# ssfjhh


    不好意思,我错了,马上贴不过,楼下的提示已经让我解决了问题,我想知道这个代码的抒写应该不是最好的,希望大家能够指正

论坛徽章:
0
10 [报告]
发表于 2014-01-23 13:41 |只看该作者
回复 5# Hadron74


谢谢,按你的意思已经解决,如果有空请指正代码哈,我感觉我写的不好

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP