精华内容
下载资源
问答
  • python获取大文件行数

    2020-05-04 16:18:22
    当需要用python获取一个文件行数时,如果文件小的话,直接存放在列表中len获取即可,可是当一个文件如果超过服务器内存值时,此时的进程就会被kill。 #获取一般大小文件时候,如下获取: def get_file_count_1(file_...

    当需要用python获取一个文件行数时,如果文件小的话,直接存放在列表中len获取即可,可是当一个文件如果超过服务器内存值时,此时的进程就会被kill。

    #获取一般大小文件时候,如下获取:

    def get_file_count_1(file_path):
        cnt = 0
        with open(file_path,mode='rb')as f:
            for line in f.readlines():#将文件存放在列表中
                cnt += 1
        return cnt
    
    

    但是上边的函数对于超大文件会有问题
    改写后:
    这样完全可以读取大文件行数了

    def get_file_count_1(file_path):
        cnt = 0
        byte_n = byte("\n",encoding="utf-8")
        with open(file_path,mode = 'rb')as f:
            while 1:
                buffer = f.read(8*1024*1024)#每次读取8MB
                if not buffer:
                    break
                cnt+=buffer.count(byte_n)#获取每个8MB中有几个换行
        return cnt
                
    

    但是上边有点啰嗦,再改写后就是利用open 读取的时候,类似是生成器的惰性执行,这样也不会撑爆内存,具体如下:

    def get_file_count_1(file_path):
        cnt = 0
        with open(file_path,mode = 'rb') as f:
            for line in f:
                cnt += 1
        return cnt
    
    展开全文
  • Python获取文件行数和某一行的内容!

    我们先创建一个文本文档,命名为text.txt

    								我的“长生果”
    								   叶文玲
    书,被人们称为人类文明的“长生果”。这个比喻,我觉得特别亲切。
    像蜂蝶飞过花丛,像泉水流经山谷,我每忆及少年时代,就禁不住涌起愉悦之情。在记忆的心扉中,少年时代的读书生活恰似一幅流光溢彩的画页,也似一阕跳跃着欢快音符的乐章。
    我最早的读物是被孩子们叫做“香烟人”的小画片。那是一种比火柴盒略大的硬纸片,正面印画,背面印字,是每盒香烟中的附赠物。遇到大人让小孩买烟,这美差往往被男孩抢了去,我们女孩只落了个眼羡的份儿。集得多了,就开始比赛用手掌刮“香烟人”,看谁刮得远。这时,我就卖力地呐喊助威,为的是最后能在赢家手里饱览那一大叠画片。这些印着“水浒”“三国”故事的小画片,是我最早见到的连环画。
    开始我看得津津有味,天长日久,就感到不过瘾了。
    后来,我看到几本真正的连环画。一位爱好美术的小学教师,他有几套连环画,我看得如醉如痴:《七色花》引得我浮想联翩,《血泪仇》又叫我泪落如珠。后来,哥哥的朋友们送了我几册小书:《刘得兰小传》《卓娅和舒拉的故事》《古丽雅的道路》……只要手中一有书,我就忘了吃忘了睡。
    渐渐地,连环画一类的小书已不能使我满足了,我又发现了一块“绿洲”——小镇的文化站有几百册图书!我每天一放下书包就奔向那里。几个月的功夫,这个小图书馆所有的文艺书籍,我差不多都借阅了。我读得很快,囫囵吞枣,大有“不求甚解”的味道。吸引我的首先是故事,是各种人物的命运遭遇,他们的悲欢离合常常使我牵肠挂肚。
    莎士比亚说:“书籍是全世界的营养品。”像我这样对阅读如饥似渴的少年,它的功用更是不言而喻。醉心阅读使我得到了报偿。从小学三年级开始,我的作文便常常居全班之冠。阅读也大大扩展了我的想象力。在家对着一面花纹驳杂的石墙,我会呆上半天,构种种神话传说;跃上遇到一个残疾人,我会黯然神伤,编织他的悲惨身世。
    记得有一次,作文的题目是《秋天来了》。教师读了一段范文之后,当大多数同学千篇一律地开始写“秋天来了,树叶黄了,一片一片地飘到了地上”时,我心里忽然掠过了不安分的一念:大家都这样写多没意思!我要用自己的眼睛去看秋天,用自己的感受去写秋天。
    我把秋天比作一个穿着金色衣裙的仙女,她那轻飘的衣袖拂去了太阳的焦热,将明亮和清爽撒给大地;她用宽大的衣衫挡着风寒,却捧起沉甸甸的果实奉献人间。人们都爱秋天,爱她的天高气爽,爱她的云淡日丽,爱她的香飘四野。秋天,使农民的笑容格外灿烂。
    于是,我的作文得到了个“甲优”,教师在文中又圈又点,将它作为范文在班上朗读。
    这小小的光荣,使我悟得一点道理:作文,首先构思要别出心裁,落笔也要有点与众不同的“鲜味”才好。这些领悟自然是课外读物的馈赠。
    后来,我又不满足于只看一般的故事书了,学校图书馆那丰富的图书又像磁石一样吸引着我,那些古今中外的大部头小说使我如醉如痴,我把所有课余时间都花在借阅图书上。这时我养成了做笔记的习惯:记书中优美的词语,记描写的精彩段落。做笔记锻炼了我的记忆力,也增强了我的理解力。
    有一次命题作文《一件不愉快的往事》我的情绪分外激动,觉得自己得到了一个大显身手的好机会:小时候受过的一次委屈,平常积累的那些描写苦恼心境的词语,像酵母似的发挥了作用。我从一个清冷的黄昏开始写,以月亮的美丽皎洁和周围人的嬉笑来反衬一个受委屈的小女孩的孤独和寂寞。写着写着,我禁不住眼泪花花。这篇充满真情实感的作文又得到了好评,被用大字誉抄出来贴在教室的墙上。可是
    看到老师用红笔圈出我写的月亮“像一轮玉盘嵌在蓝色的天幕中”这段文字,说这个“嵌”字用得特别传神时,我脸红了。
    我不能心安理得地接受这个赞誉——因为这句描写和这个“特别传神”的“嵌”字,是我看了巴金先生的《家》后念念不忘的词句。
    于是,我又悟出了一点道理:作文,要写真情实感;作文练习,开始离不开借鉴和模仿,但是真正打动人心的东西,应该是自己呕心沥血的创造。
    

    在同文件夹下创建read.py,输入以下代码:

    #嵌套错误语句
    try:
    	#读取文件
    	with open('text.txt','r',encoding = 'utf-8') as f:
    		#读取文件内容
    		temp = f.read()
    		#将文件按行数分成列表
    		line_list = temp.splitlines()
    		#声明变量储存列表长度
    		lines = len(line_list)
    		#用户输入行号
    		get_line = int(input('请输入您要看第几行,共有%d行:' % (lines)))
    		#获取行内容,注意行号要减1,因为列表的下标是从0开始的
    		get_line_text = line_list[get_line - 1]
    		#输出信息
    		print('此文件共有%d行!\n这一行的内容是:\n%s' % (lines,get_line_text))
    #输出错误
    except Exception as e:
    	print('遇到错误:\n',e)
    

    这样就完成了!

    展开全文
  • ‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬...‮‬‫‬‮‬在Python123中读取文件请假设题目对应文件在当前目录下...

    传感器日志摘要

    描述

    本题目附件提供了一个传感器日志文件,为文本类型,共1千行,每行包含了日期、时间和4种传感器读数值。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬

    在Python123中读取文件请假设题目对应文件在当前目录下,文件打开函数参考如下:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬

    f=open("sensor-data-1k.txt", "r")

    编写程序,输出该文件中第N*200行内容,其中N为整数,即输出第200行、第400行等内容,各行内容之间没有空行。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬

    输入格式

    附件 senor-data-1k.txt文件‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬

    输出格式

    字符输出‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬

    输入输出示例

    仅以输出第200行为例(实际上应该输出共5行)‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬

    输入输出示例 1无

    2018-02-28 05:40:17.035065 17.7736 39.1783 43.24 2.68742

    f=open("sensor-data-1k.txt", "r")

    n = 0

    for line in f:

    n +=1

    if n%200 ==0:

    print(line,end = '')

    展开全文
  • I need to get a line count of a large file (hundreds of thousands of lines) in python. What is the most efficient way both memory- and time-wise?At the moment I do:def file_len(fname):with open(fname)...

    I need to get a line count of a large file (hundreds of thousands of lines) in python. What is the most efficient way both memory- and time-wise?

    At the moment I do:

    def file_len(fname):

    with open(fname) as f:

    for i, l in enumerate(f):

    pass

    return i + 1

    is it possible to do any better?

    解决方案

    I had to post this on a similar question until my reputation score jumped a bit (thanks to whoever bumped me!).

    All of these solutions ignore one way to make this run considerably faster, namely by using the unbuffered (raw) interface, using bytearrays, and doing your own buffering. (This only applies in Python 3. In Python 2, the raw interface may or may not be used by default, but in Python 3, you'll default into Unicode.)

    Using a modified version of the timing tool, I believe the following code is faster (and marginally more pythonic) than any of the solutions offered:

    def rawcount(filename):

    f = open(filename, 'rb')

    lines = 0

    buf_size = 1024 * 1024

    read_f = f.raw.read

    buf = read_f(buf_size)

    while buf:

    lines += buf.count(b'\n')

    buf = read_f(buf_size)

    return lines

    Using a separate generator function, this runs a smidge faster:

    def _make_gen(reader):

    b = reader(1024 * 1024)

    while b:

    yield b

    b = reader(1024*1024)

    def rawgencount(filename):

    f = open(filename, 'rb')

    f_gen = _make_gen(f.raw.read)

    return sum( buf.count(b'\n') for buf in f_gen )

    This can be done completely with generators expressions in-line using itertools, but it gets pretty weird looking:

    from itertools import (takewhile,repeat)

    def rawincount(filename):

    f = open(filename, 'rb')

    bufgen = takewhile(lambda x: x, (f.raw.read(1024*1024) for _ in repeat(None)))

    return sum( buf.count(b'\n') for buf in bufgen )

    Here are my timings:

    function average, s min, s ratio

    rawincount 0.0043 0.0041 1.00

    rawgencount 0.0044 0.0042 1.01

    rawcount 0.0048 0.0045 1.09

    bufcount 0.008 0.0068 1.64

    wccount 0.01 0.0097 2.35

    itercount 0.014 0.014 3.41

    opcount 0.02 0.02 4.83

    kylecount 0.021 0.021 5.05

    simplecount 0.022 0.022 5.25

    mapcount 0.037 0.031 7.46

    展开全文
  • 如何使用Python快速高效地统计出大文件的总行数, 下面是一些实现方法和性能的比较。1.readline读所有行使用readlines方法读取所有行:def readline_count(file_name):return len(open(file_name).readlines())2.依次...
  • Python 实现,读取文件行数,类似 wc -l 的功能,小文件无所谓,如果遇到文件(5G),就要选择一种性能较高的方法了。列出一下方法:1. readline 读所有行def readline_count(file_name):return len(open(file_...
  • 主要介绍了python计算文本文件行数的方法,涉及Python针对文本文件的读取与行数统计相关技巧,需要的朋友可以参考下
  • python获取文件行数的方法: #获取文件行数 import os os.chdir(r'C:\WorkDir\pyecharts-gallery-master\Bar3D') os.listdir() for count,line in enumerate(open(f"bar3d_base.py", "r", encoding='utf-8')): ...
  • python 获取文件行数

    万次阅读 2019-01-05 13:22:26
    对于文件内容比较多,采用enumerate获取文件行数" count = 0 for index, line in enumerate(f): count += 1 print(count) 方法二: "对于文件内容比较少,采用该方法获取文件行数" with open("...
  • 原博文2016-11-02 17:22 −一、计算文件行数 最简单的办法是把文件读入一个的列表中,然后统计列表的长度.如果文件的路径是以参数的形式filepath传递的,那么只用一行代码就可以完成我们的需求了:count = len(open...
  • Python:统计文件行数

    2011-08-15 22:59:52
    Python:统计文件行数 添加了一个方法4,同时发现我的电脑上第三种方法要快一些
  • Python获取文件行数

    2021-02-04 23:24:47
    import os m_count=0 def Startcount(p_str_filename): global m_count print(p_str_filename) f = open(p_str_filename, 'rb') ... print(p_str_filename , " 文件行数 " , m_line) m_count+=m_line pri
  • 简单的做法:需要在python获取大文件(数十万行)的行数。def file_len(fname):with open(fname) as f:for i, l in enumerate(f):pass return i + 1有效的方法(缓冲区读取策略):首先看下运行的结果:mapcount :...
  • 如何使用Python快速高效地统计出大文件的总行数, 下面是一些实现方法和性能的比较。 1.readline读所有行 使用readlines方法读取所有行: def readline_count(file_name): return len(open(file_name).readlines()) ...
  • 原博文2019-01-02 13:28 −#如果要统计文件行数,可以这样写: count = len(open(filepath, 'r').readlines()) #这种方法简单,但是可能比较慢,当文件比较时甚至不能工作。 #可以利用enumerate(): count = 0 ...
  • Python3 统计文件行数

    千次阅读 2020-03-28 22:33:00
    最简单的办法是使用 readlines 函数,获取文件内容列表,然后统计列表的长度: file_path = r"D:\04_git\pandas_datas\data-USstates\state-population.csv" f = open(file_path , "r") count = len(f.readlines()) ...
  • Python获取.py文件行数并发邮件给自己 学习python,每天告诉自己当前已经敲了多少行代码,以此激励自己。 import os,time,datetime def lines_messege(file_name): #(传入文件名即可获取行数,需要完整路径名) if...
  • def buff_count(file_name): with open(file_name, 'rb') as f: count = 0 buf_size = 1024 * 1024 buf = f.read(buf_size) while buf: count +=... return count

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,501
精华内容 9,800
关键字:

python获取大文件行数

python 订阅