自定义sort排序
#!/usr/bin/python # -*- coding: utf-8 -*- import logging import sys import Queue import threading import os import time #reload(sys) #sys.setdefaultencoding('utf8') def get_key_val_line(line): info = line.split(" ") remote_addr = info[0] end_time = time.mktime(time.strptime(info[3],'[%d/%b/%Y:%H:%M:%S')) cost_time = info[5] method = info[6] request = info[7] status = info[9] body_bytes_sent = info[10] bytes_sent = info[12] ua = info[14] if status != "200" and status != "206": return #config key = ":".join([remote_addr,ua]) #key = ":".join([remote_addr,url]) #key = ":".join([remote_addr,url,ua]) #val should not change val = [end_time, float(cost_time), bytes_sent] return key, val def tsort(a, b): return int(a[0] - b[0]) def get_speed_bytes(dlinfo): dlinfo.sort(cmp = tsort) total_bytes = 0 e,t = 0.0, 0.0 for i in dlinfo: total_bytes += int(i[2]) if i[0] <= e and i[0]+i[1] > e: t += i[1] - e elif e < i[0]: t += i[1] if i[0] + i[1] > e: e = i[1] if t == 0: return t, total_bytes return total_bytes/1024/t, total_bytes if __name__ == '__main__': d_total = {} while True: line = sys.stdin.readline() if not line:break try: key, val = get_key_val_line(line.strip()) if not key: continue except: continue if d_total.has_key(key): d_total[key].append(val) else: d_total[key] = [val] sys.stdout.flush() for k, v in d_total.items(): dl_speed, total_bytes = get_speed_bytes(v) print "%.2f\t%d\t%s"%(dl_speed,total_bytes,k)
相关推荐
本篇将深入探讨如何利用Python实现这一功能,主要关注`sort_pinyin.py`脚本以及可能用到的辅助资源`pinyin.txt`。 首先,我们要理解`pinyin.txt`文件的作用。这个文件通常包含汉字到拼音的映射关系,因为Python标准...
接下来,我们需要编写Python脚本来实现排序逻辑。这里可能需要用到ArcGIS的Geoprocessing模块,它可以访问各种GIS操作,例如计算几何属性、查询和更新属性等。首先,获取点要素的坐标,然后根据坐标值(例如X和Y)...
默认情况下,`sort()`按字符串顺序排序,但可以通过自定义比较函数实现数字或其他复杂类型的排序。这种方法简单易用,但在处理大量数据时可能性能较低。 2. **jQuery插件排序**: jQuery是一个流行的JavaScript库...
这个Python脚本或工具可能的工作流程如下: 1. **扫描系统**:首先,脚本会扫描用户的系统,查找所有已安装的GNOME Shell兼容的应用程序。 2. **分类应用**:接着,脚本会根据应用的元数据(如`.desktop`文件)将...
在shell环境中,你可以结合Python脚本和shell命令行工具,如awk、sed或grep,来处理和过滤数据,然后使用`spark`库生成sparklines。这样,你可以实时地在终端上看到数据的变化,这对于监控日志文件或其他实时数据流...
5. **设置配置**:用户可以通过创建`.isort.cfg`或在`setup.py`中定义配置,自定义排序规则。 6. **命令行工具**:可以直接在命令行中运行`isort`,批量处理文件或者集成到构建脚本中。 7. **IDE集成**:许多流行的...
在`simpleListSorting-master`文件夹中,可能包含了一个或多个Python脚本文件,每份代码都对应了一种或多种排序算法的实现。通过阅读和学习这些代码,你可以深入理解各种排序方法的工作原理,提升你的Python编程技巧...
【Python脚本提升编码速度】 Python语言以其简洁的语法和高度可读性赢得了广大程序员的喜爱。为了进一步提高编码效率,本文将介绍18个实用的Python脚本技巧,这些技巧在日常编程中都能发挥重要作用。 1. **查找...
在Java中,可以使用内置的`Arrays.sort()`方法对数组进行排序,但对于自定义对象或者为了理解算法原理,直接编写排序函数则更为常见。例如,可以实现快速排序的递归过程,或者利用Java 8的流API进行并行排序。 3. *...
在Python中,虽然内置的`sort()`函数和`sorted()`函数可以对简单数据结构进行排序,但在面对复杂或自定义的数据结构时,可能需要更灵活的解决方案。asstosrt库可能提供了这样的灵活性,可能包括对自定义对象排序、...
"how to sort"章节则涵盖了Python中的排序算法和方法。在Python中,有多种方式可以对数据进行排序,如内置的`sorted()`函数、列表的`sort()`方法,以及`heapq`模块等。这一部分将详细解释这些方法的工作原理,如何...
总的来说,这个压缩包文件很可能包含了一个Python脚本,该脚本生成了随机数据并进行了某种形式的数值模拟。通过理解Python中的随机数生成、数据排序和数值模拟技术,我们可以更好地理解和复用这些数据,进一步扩展...
5. **排序算法 (howto-sorting.pdf)**:在Python中,可以使用内置的sorted()函数和列表的sort()方法对数据进行排序。这份文档详细解释了这些函数的工作原理,以及如何使用key参数自定义排序规则,同时涵盖了稳定排序...
"rsort" 库可能是对Python内置 `sorted()` 函数或列表的 `sort()` 方法的一个补充或优化,可能提供了更高效、更特定类型的排序算法,例如对大数据集的快速排序、归并排序或其他自定义排序策略。 `.tar.gz` 是一种...
1. **排序算法**:Python内置了`sorted()`函数和`list.sort()`方法进行排序,同时也可以实现自定义排序逻辑。常见的排序算法有冒泡排序、选择排序、插入排序、快速排序、归并排序等。理解这些算法的工作原理有助于...
"SortableClasses"是一个Python库,主要用于提供排序功能,特别是在处理自定义对象的列表时,能够按照用户定义的规则进行排序。这个库的版本是0.9.4rc25,表明它是一个预发布版本,可能包含一些新特性或修复的bug。 ...
`dumps()`接受多个参数,如`indent`用于设置缩进,`sort_keys`用于是否按照键排序等。 ```python import simplejson as json data = {"name": "John", "age": 30, "city": "New York"} json_str = json.dumps(data...
Excel中同样有内置的数字排序功能,或者在编程环境中,你可以使用内置的排序函数,比如Python的`sorted()`或列表的`sort()`方法。 3. **日期时间排序**:日期时间排序涉及比较日期和时间的先后。在Excel中,日期被...
根据给定文件的内容部分,我们可以提取出以下Python编程的相关知识点: 1. **Python的基本输入输出**:文档中...通过这些知识点,初学者可以开始编写一些基础的Python脚本,并逐步深入到更复杂的编程逻辑和项目中去。
Python的标准库已经内置了`sort`和`sorted`函数,它们能够对列表进行排序,但对于特定的排序需求,例如自定义排序规则或者性能优化,`usort`库可能提供更灵活和高效的选择。 在`usort-0.6.2`这个压缩包中,我们通常...