【转载】python计算文件的行数和读取某一行内容的实现方法
一、计算文件的行数
最简单的办法是把文件读入一个大的列表中,然后统计列表的长度.如果文件的路径是以参数的形式filepath传递的,那么只用一行代码就可以完成我们的需求了:
count = len(open(filepath,'rU').readlines())
如果是非常大的文件,上面的方法可能很慢,甚至失效.此时,可以使用循环来处理:
count = -1
for count, line in enumerate(open(thefilepath, 'rU')):
pass
count += 1
另外一种处理大文件比较快的方法是统计文件中换行符的个数'\n '(或者包含'\n'的字串,如在windows系统中):
count = 0
thefile = open(thefilepath, 'rb')
while True:
buffer = thefile.read(8192*1024)
if not buffer:
break
count += buffer.count('\n')
thefile.close( )
参数'rb'是必须的,否则在windows系统上,上面的代码会非常慢.
linecache是专门支持读取大文件,而且支持行式读取的函数库。 linecache预先把文件读入缓存起来,后面如果你访问该文件的话就不再从硬盘读取
二、读取文件某一行的内容(测试过1G大小的文件,效率还可以)
import linecache
count = linecache.getline(filename,linenum)
三、用linecache读取文件内容(测试过1G大小的文件,效率还可以)
str = linecache.getlines(filename)
str为列表形式,每一行为列表中的一个元素
【转载】python计算文件的行数和读取某一行内容的实现方法的更多相关文章
- python计算文件的行数和读取某一行内容的实现方法
一.计算文件的行数 最简单的办法是把文件读入一个大的列表中,然后统计列表的长度.如果文件的路径是以参数的形式filepath传递的,那么只用一行代码就可以完成我们的需求了:count = len(op ...
- python计算文件的行数的方法
1.简单方法把文件读入一个大的列表中,然后统计列表的长度. count = len(open("文件名").readlines()) print count 2.读取文件某一行 ...
- 用python脚本计算某一个文件的行数
python可以统计文件的行数,你相信吗?不管你信不信反正我信了.下面我们来看一下python怎样统计文件的行数,代码很简单,我也做了注释,很简单的实现... 1 2 3 4 5 6 7 8 9 10 ...
- 【Python基础】计算项目代码行数
统计代码行数 # coding: utf-8 import os import sys import time def get_line_count(file_path): ""& ...
- 使用PYTHON统计项目代码行数
目录 一 使用PYTHON统计项目代码行数 二 应用实例 注:原创不易,转载请务必注明原作者和出处,感谢支持! 一 使用PYTHON统计项目代码行数 遇到一个非常小的需求:统计一个项目里头的各类源代码 ...
- shell如何查看单个或多个文件的行数或总行数
shell如何查看单个或多个文件的行数或总行数_百度经验 https://jingyan.baidu.com/article/cbf0e500b8470f2eab28937d.html 单个文件 ...
- python123期末四题编程题 -无空隙回声输出-文件关键行数-字典翻转输出-《沉默的羔羊》之最多单词
1. 无空隙回声输出 描述 获得用户输入,去掉其中全部空格,将其他字符按收入顺序打印输出. ...
- 使用java读取文件夹中文件的行数
使用java统计某文件夹下所有文件的行数 经理突然交代一个任务:要求统计某个文件夹下所有文件的行数.在网上查了一个多小时没有解决.后来心里不爽就决定自己写一个java类用来统计文件的行数,于是花了两个 ...
- shell 统计某个文件的行数命令
语法:wc [选项] 文件- 说明:该命令统计给定文件中的字节数.字数.行数.如果没有给出文件名,则从标准输入读取.wc同时也给出所有指定文件的总统计数.字是由空格字符区分开的最大字符串. 该命令各选 ...
随机推荐
- socket链接循环
server------------------------#!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/5 import socke ...
- zabbix-3.2.1监控nginx-1.11.5
声明参考地址:http://www.ttlsa.com/zabbix/zabbix-monitor-nginx-performance/ 1.zabbix需要监控nginx,则nginx需要配置ngx ...
- linux下mysql的root密码忘记----解决方案
1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库. 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的 状态下 ...
- linux进程通信:消息队列
消息队列可以实现两个没有关系的进程之间的通信. 创建了一个消息队列后,进程可以往里面放消息,也可以取消息.因为这个消息队列是有名字的,所以就算是两个没有关系的进程,也能通信. 而且人性化的一点是,可以 ...
- Unresolved external 'AlphaBlend' referenced from
AlphaBlend [Linker Error] Unresolved external 'AlphaBlend' referenced from 解决方案 把文件msimg32.lib添加到工程中 ...
- node / npm 配置问题
安装nodejs 后运行 npm 命令无响应处理方法 安装和卸载过nodejs, 也编辑过 C:\Users\{账户}\下的.npmrc文件. 再全新安装nodejs ,运行npm 命令,无响应. 处 ...
- Fail2ban 阻止暴力破解
简介: Fail2ban 能够监控系统日志,匹配日志中的错误信息(使用正则表达式),执行相应的屏蔽动作(支持多种,一般为调用 iptables ),是一款很实用.强大的软件. 如:攻击者不断尝试穷举 ...
- PHP - 闭包Closure和lambda function
现在的语言没有闭包简直都不好意思说出来. 想要了解闭包是什么,那么就必须知道匿名函数.其实看起来他们其实差不多一个意思. 见php RFC一句话: End of 2007 a patch was ...
- 通过devtools在centos系统中启用高版本的gcc
C++11出来好久了,现在还是使用c++03的,需要在centos6.6的系统上实现gcc的升级,又不想自己编译代码. 于是选用了devtoolsset系列,安装脚本如下 安装脚本如下 functio ...
- NHibernate-NativeSQL
一.调用方式 1.创建查询 var sql = session.CreateSQLQuery("SELECT * FROM sns_User WHERE UserName LIKE :use ...