python读行-Python如何一次读取N行
由于增加了从文件中选择的行在统计上必须均匀分布的要求,因此我提供了这种简单的方法。
"""randsamp - extract a random subset of n lines from a large file"""
import random
def scan_linepos(path):
"""return a list of seek offsets of the beginning of each line"""
linepos = []
offset = 0
with open(path) as inf:
# WARNING: CPython 2.7 file.tell() is not accurate on file.next()
for line in inf:
linepos.append(offset)
offset += len(line)
return linepos
def sample_lines(path, linepos, nsamp):
"""return nsamp lines from path where line offsets are in linepos"""
offsets = random.sample(linepos, nsamp)
offsets.sort() # this may make file reads more efficient
lines = []
with open(path) as inf:
for offset in offsets:
inf.seek(offset)
lines.append(inf.readline())
return lines
dataset = "big_data.txt"
nsamp = 5
linepos = scan_linepos(dataset) # the scan only need be done once
lines = sample_lines(dataset, linepos, nsamp)
print "selecting %d lines from a file of %d" % (nsamp, len(linepos))
print "".join(lines)
我在一个包含1.7GB磁盘的300万行的模拟数据文件上进行了测试。 在我不太热的台式机上,nsamp占据了运行时间约20秒的时间。
只是为了检查nsamp的性能,我使用了nsamp模块
import timeit
t = timeit.Timer("sample_lines(dataset, linepos, nsamp)",
"from __main__ import sample_lines, dataset, linepos, nsamp")
trials = 10 ** 4
elapsed = t.timeit(number=trials)
print u"%dk trials in %.2f seconds, %.2fµs per trial" % (trials/1000,
elapsed, (elapsed/trials) * (10 ** 6))
对于nsamp的各种值; 当nsamp为100时,单个sample_lines在460µs内完成并线性扩展至10k样本,每次调用时间为47ms。
自然而然的下一个问题是“随机”根本不是随机的吗?答案是“亚密码学,但对于生物信息学当然很好”。
python读行-Python如何一次读取N行相关推荐
- python读docx文件_python-docx文件定位读取过程(尝试替换)
python-docx文件定位读取过程(尝试替换) 以上是开头,安装完后需要导入转载的代码读取所有docx文件中的内容发现没有读取到表格数据: from docx import Document de ...
- python如何读取文件中第一行的元素_python txt读取第一行数据库
带你读<Python数据分析与数据化运营(第2版)>之一:Python和数据化运营 点击查看第二章点击查看第三章Python数据分析与数据化运营(第2版) 宋天龙 著 第1章 Python ...
- python读啥-Python之文件读写
本节内容: I/O操作概述 文件读写实现原理与操作步骤 文件打开模式 Python文件操作步骤示例 Python文件读取相关方法 文件读写与字符编码 一.I/O操作概述 I/O在计算机中是指Input ...
- python读什么-python读什么
广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 注意: 您目前查阅的是历史版本 sdk 文档,已不再更新和维护,我们建议您查阅新版 ...
- python读数据-python数据读写
广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 读写json文件的文档docimport jsondirectory = ...
- 读取第n行python_Python如何一次读取N行
我正在编写一个代码,一次取一个巨大的文本文件(几GB)N行,处理该批处理,然后移到下一行N行,直到我完成整个文件. (我不在乎最后一批是不是完美的尺寸). 我一直在阅读有关使用itertools is ...
- python读文件每一行、并把这行替换-python基础--文件操作实现全文或单行替换
python修改文件时,使用w模式会将原本的文件清空/覆盖.可以先用读(r)的方式打开,写到内存中,然后再用写(w)的方式打开. 替换文本中的taste 为 tasting Yesterday whe ...
- python读文件每一行、并把这行替换-Python按行读文件
1. 最基本的读文件方法: # File: readline-example-1.py file = open("sample.txt") while 1: line = file ...
- python读excel中数据画图_python读取excel数据并且画图的实现示例
一,要读取的数据的格式: 二,数据读取部分: b站视频参考:https://www.bilibili.com/video/BV14C4y1W7Nj?t=148 # 1930 workbook=xlrd ...
- python读数据-python读取各种文件数据方法解析
python读取.txt(.log)文件 ..xml 文件 .excel文件数据,并将数据类型转换为需要的类型,添加到list中详解 1.读取文本文件数据(.txt结尾的文件)或日志文件(.log结尾 ...
最新文章
- HDU 1430 关系映射 + 打表 .
- 卷及神经网络CNN for image retrieval
- electron调试html,electron桌面应用程序开发入门
- 写最少的代码,避免给自己找麻烦
- 用asp.net编写冒泡排序法
- WCF简单教程(5) 用IIS做Host
- Golang——单元测试testing
- c++中的运算符异或^,与,或|
- java中文文档官方下载
- MongoDB 安装配置
- 为什么你就是学不会 Numpy ? | 技术头条
- 【渝粤教育】国家开放大学2018年秋季 0690-22T化工原理及实验 参考试题
- Windows命令行快速启动快捷方式
- android 更新相册,Android 图片存入系统相册更新显示实例详解
- oracle11g基于bootstrap$中的ind$表损坏系列五
- 条件运算符的嵌套使用
- css选择器有哪些?
- ARouter there is no route matched
- Unity SWS自动寻路插件
- JS如何区分微信浏览器、QQ浏览器和QQ内置浏览器,解决 ios 无法判断是否为qq浏览器环境的问题。
热门文章
- oracle关闭数据库容器,Oracle12cr1新特性之容器数据库(CDB)和可插拔数据库(PDB) 的启动和关闭...
- python椭圆识别_Python+pillow计算椭圆图形几何中心
- php显示图片缩略图,使用ThinkPHP生成缩略图及显示的方法
- android json字符串转成json对象_C++ 两行代码实现json与类对象互转
- java可以连接php吗_java - 需要PHP或Java代码才能使用多个Internet连接
- python中openpyxl的使用
- principle中文_principle与principal,长得像,发音还一样!又头疼了!
- vue实现留言板的功能_基于vue和bootstrap实现简单留言板功能
- python open函数参数_python open函数的用法笔记
- oracle主备不同步,主备环境下数据不一致重新部署复制