python awk 读文件_测试python awk sed 读取文件指定位置时的性能
#!/bin/env python
#coding:utf8
'''
awk 打印指定行數(shù)
sed 打印指定行數(shù)
python 打印指定位置,某長(zhǎng)度字符串
awk 耗時(shí)最長(zhǎng),很長(zhǎng)
sed awk 時(shí)間一半
python 耗時(shí) 基本忽略不計(jì)
使用腳本監(jiān)控日志文件的時(shí)候,每次記錄上次退出的位置
python效率最高.
'''
import os
from ?time import time
from os.path import getsize
testfile='/dev/shm/%s' % time()
#生成文件總行數(shù) 10**8 大約800M ?10**7 大約 80M
linesize=10**7
#提取文件中間行
halfline=int(linesize / 2)
#文件大小一半
halffilesize=0
#測(cè)試次數(shù)
num=10
#生成文件大小
filesize=0
r=[]
def create_testfile():
f=open(testfile,'w')
for i in xrange(linesize):
f.write(str(i)+'\n')
f.close()
def time1(func):
t1=time()
func()
t2=time()
t=t2-t1
print func.func_name,t
r.append("%s:\t\t%s" % (func.func_name,str(t) ) )
def awk():
for i in range(num):
os.system("/bin/awk 'NR==%s { print $0 }' %s " % (halfline,testfile) )
def sed():
for i in range(num):
os.system("/bin/sed -n %sp %s " % (halfline,testfile) )
#os.system("/bin/sed -n %sp %s|awk '{print $0}' " % (halfline,testfile) )
def py():
for i in range(num):
fn=open(testfile)
#讀取
fn.seek(halffilesize)
print fn.read(7)
fn.close()
print "create test file!"
create_testfile()
filesize=getsize(testfile)
halffilesize=int(filesize/2)
time1(awk)
time1(sed)
time1(py)
print "\n\n"
print "halffilesize:\t\t",halffilesize
print "filesize:\t\t",filesize
os.system('/bin/ls -lh %s' % testfile)
print "\t"
for i in r:
print i
os.unlink(testfile)
總結(jié)
以上是生活随笔為你收集整理的python awk 读文件_测试python awk sed 读取文件指定位置时的性能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python的flag是什么意思_pyt
- 下一篇: 网关的作用是什么_SpringCloud