Python 实例一 统计指定文件的行数或读取指定文件指定行数的内容

一. 基础知识

统计指定文件的行数,必须先打开读取文件内容,用到open/文件操作: f=open(‘/tmp/hello’,’w’) #open(路径+文件名,读写模式) #读写模式:r只读,r+读写,w新建(会覆盖原有文件),a追加,b二进制文件.常用模式 如:’rb’,’wb’,’r+b’等等

读写模式的类型有:

rU 或 Ua 以读方式打开, 同时提供通用换行符支持 (PEP 278) w     以写方式打开, a     以追加模式打开 (从 EOF 开始, 必要时创建新文件) r+     以读写模式打开 w+     以读写模式打开 (参见 w ) a+     以读写模式打开 (参见 a ) rb     以二进制读模式打开 wb     以二进制写模式打开 (参见 w ) ab     以二进制追加模式打开 (参见 a ) rb+    以二进制读写模式打开 (参见 r+ ) wb+    以二进制读写模式打开 (参见 w+ ) ab+    以二进制读写模式打开 (参见 a+ )

二. 统计文件行数示例: 1.(小文件) pycharm 开发环境中新建
#coding=utf-8 count = len(open(‘F:\test\test.txt’,’rU’).readlines()) print(count) 上述代码是读取F:\test\test.txt路径下的test.txt文件的内容行数 并在console终端打印出行数 2.(大文件)如果是非常大的文件,上面的方法可能很慢,甚至失效.此时,可以使用循环来处理:

#coding=utf-8
count = -1
for count, line in enumerate(open('F:\daiqinge\dai.txt','rU').readlines()):
    pass
    count+=1
print(count)

其中pass语句的意思是空操作,什么也不做

3. (大文件)另外一种处理大文件的方法(统计了换行符的个数)
#coding=utf-8
count = 0
thefile = open('F:\daiqinge\dai.txt', 'rb')
while True:
    buffer = thefile.read(8192*1024)
    if not buffer:
        break
    count += buffer.count('\n')
thefile.close( )
print(count+1)

参数’rb’是必须的,否则在windows系统上,上面的代码会非常慢

三. 读取指定文件的内容

(大文件)linecache是专门支持读取大文件,而且支持行式读取的函数库。 linecache预先把文件读入缓存起来,后面如果你访问该文件的话就不再从硬盘读取

1. 读取文件某一行的内容(测试过1G大小的文件,效率还可以)

#coding=utf-8
import linecache
count = linecache.getline('F:\daiqinge\dai.txt',2)
print(count)

读取文件第2行的内容

2. 读取指定文件的全部内容

用linecache读取文件内容(测试过1G大小的文件,效率还可以)

#coding=utf-8
import linecache
content = linecache.getlines('F:\daiqinge\dai.txt')
print(content)

content为列表形式,每一行为列表中的一个元素

    原文作者:daiqinge
    原文地址: https://blog.csdn.net/daiqinge/article/details/50530167
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞