`

python脚本(自定义sort排序)

 
阅读更多

自定义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 汉字按拼音排序

    本篇将深入探讨如何利用Python实现这一功能,主要关注`sort_pinyin.py`脚本以及可能用到的辅助资源`pinyin.txt`。 首先,我们要理解`pinyin.txt`文件的作用。这个文件通常包含汉字到拼音的映射关系,因为Python标准...

    ArcGIS点编号排序

    接下来,我们需要编写Python脚本来实现排序逻辑。这里可能需要用到ArcGIS的Geoprocessing模块,它可以访问各种GIS操作,例如计算几何属性、查询和更新属性等。首先,获取点要素的坐标,然后根据坐标值(例如X和Y)...

    这是一个表格脚本排序的例子

    默认情况下,`sort()`按字符串顺序排序,但可以通过自定义比较函数实现数字或其他复杂类型的排序。这种方法简单易用,但在处理大量数据时可能性能较低。 2. **jQuery插件排序**: jQuery是一个流行的JavaScript库...

    Python-SortGNOMEShellApps按类别排序GNOME应用仪表盘

    这个Python脚本或工具可能的工作流程如下: 1. **扫描系统**:首先,脚本会扫描用户的系统,查找所有已安装的GNOME Shell兼容的应用程序。 2. **分类应用**:接着,脚本会根据应用的元数据(如`.desktop`文件)将...

    Python-Python库根据数据的相对排序在shell中生成sparklines

    在shell环境中,你可以结合Python脚本和shell命令行工具,如awk、sed或grep,来处理和过滤数据,然后使用`spark`库生成sparklines。这样,你可以实时地在终端上看到数据的变化,这对于监控日志文件或其他实时数据流...

    Python-isort对Pythonpackage的import顺序进行排序

    5. **设置配置**:用户可以通过创建`.isort.cfg`或在`setup.py`中定义配置,自定义排序规则。 6. **命令行工具**:可以直接在命令行中运行`isort`,批量处理文件或者集成到构建脚本中。 7. **IDE集成**:许多流行的...

    simpleListSorting:一个以各种方式对列表进行排序的Python脚本

    在`simpleListSorting-master`文件夹中,可能包含了一个或多个Python脚本文件,每份代码都对应了一种或多种排序算法的实现。通过阅读和学习这些代码,你可以深入理解各种排序方法的工作原理,提升你的Python编程技巧...

    18个Python脚本可加速你的编码速度(提示和技巧)

    【Python脚本提升编码速度】 Python语言以其简洁的语法和高度可读性赢得了广大程序员的喜爱。为了进一步提高编码效率,本文将介绍18个实用的Python脚本技巧,这些技巧在日常编程中都能发挥重要作用。 1. **查找...

    排序算法源代码

    在Java中,可以使用内置的`Arrays.sort()`方法对数组进行排序,但对于自定义对象或者为了理解算法原理,直接编写排序函数则更为常见。例如,可以实现快速排序的递归过程,或者利用Java 8的流API进行并行排序。 3. *...

    Python库 | asstosrt-0.1.5.zip

    在Python中,虽然内置的`sort()`函数和`sorted()`函数可以对简单数据结构进行排序,但在面对复杂或自定义的数据结构时,可能需要更灵活的解决方案。asstosrt库可能提供了这样的灵活性,可能包括对自定义对象排序、...

    python-3.7.7-docs-pdf-a4.zip

    "how to sort"章节则涵盖了Python中的排序算法和方法。在Python中,有多种方式可以对数据进行排序,如内置的`sorted()`函数、列表的`sort()`方法,以及`heapq`模块等。这一部分将详细解释这些方法的工作原理,如何...

    利用python随机产生的数据,用于数值模拟

    总的来说,这个压缩包文件很可能包含了一个Python脚本,该脚本生成了随机数据并进行了某种形式的数值模拟。通过理解Python中的随机数生成、数据排序和数值模拟技术,我们可以更好地理解和复用这些数据,进一步扩展...

    python-3.7.3中文文档

    5. **排序算法 (howto-sorting.pdf)**:在Python中,可以使用内置的sorted()函数和列表的sort()方法对数据进行排序。这份文档详细解释了这些函数的工作原理,以及如何使用key参数自定义排序规则,同时涵盖了稳定排序...

    Python库 | rsort-0.1.2.tar.gz

    "rsort" 库可能是对Python内置 `sorted()` 函数或列表的 `sort()` 方法的一个补充或优化,可能提供了更高效、更特定类型的排序算法,例如对大数据集的快速排序、归并排序或其他自定义排序策略。 `.tar.gz` 是一种...

    python_practice:之前学习过python脚本,尝试回忆一下被遗忘的算法

    1. **排序算法**:Python内置了`sorted()`函数和`list.sort()`方法进行排序,同时也可以实现自定义排序逻辑。常见的排序算法有冒泡排序、选择排序、插入排序、快速排序、归并排序等。理解这些算法的工作原理有助于...

    Python库 | sortableclasses-0.9.4rc25.tar.gz

    "SortableClasses"是一个Python库,主要用于提供排序功能,特别是在处理自定义对象的列表时,能够按照用户定义的规则进行排序。这个库的版本是0.9.4rc25,表明它是一个预发布版本,可能包含一些新特性或修复的bug。 ...

    python中的simplejson模块

    `dumps()`接受多个参数,如`indent`用于设置缩进,`sort_keys`用于是否按照键排序等。 ```python import simplejson as json data = {"name": "John", "age": 30, "city": "New York"} json_str = json.dumps(data...

    Sort list based on text/numeric/date-time in any column按列

    Excel中同样有内置的数字排序功能,或者在编程环境中,你可以使用内置的排序函数,比如Python的`sorted()`或列表的`sort()`方法。 3. **日期时间排序**:日期时间排序涉及比较日期和时间的先后。在Excel中,日期被...

    python绝对简明手册

    根据给定文件的内容部分,我们可以提取出以下Python编程的相关知识点: 1. **Python的基本输入输出**:文档中...通过这些知识点,初学者可以开始编写一些基础的Python脚本,并逐步深入到更复杂的编程逻辑和项目中去。

    Python库 | usort-0.6.2.tar.gz

    Python的标准库已经内置了`sort`和`sorted`函数,它们能够对列表进行排序,但对于特定的排序需求,例如自定义排序规则或者性能优化,`usort`库可能提供更灵活和高效的选择。 在`usort-0.6.2`这个压缩包中,我们通常...

Global site tag (gtag.js) - Google Analytics