精华内容
下载资源
问答
  • python读取文件最后一行两种方式1)常规方法:从前往后依次读取步骤:open打开文件。读取文件,把文件所有行读入内存。遍历所有行,提取指定行的数据。优点:简单,方便缺点:当文件大了以后时间太慢,无法忍受2)...

    python读取文件最后一行两种方式

    1)常规方法:从前往后依次读取

    步骤:open打开文件。

    读取文件,把文件所有行读入内存。

    遍历所有行,提取指定行的数据。

    优点:简单,方便

    缺点:当文件大了以后时间太慢,无法忍受

    2)推荐方法:

    步骤:open打开日志文件。

    移动文件读取指针到文件末尾。

    从后往前移动指针直到合适的位置。

    读取文件,提取指定行的数据。

    优点:时间相对固定,适合处理大文件

    代码实现

    fname = 'test.html'

    with open(fname, 'r', encoding='utf-8') as f: # 打开文件

    lines = f.readlines() # 读取所有行

    first_line = lines[0] # 取第一行

    last_line = lines[-1] # 取最后一行

    print('文件' + fname + '第一行为:'+ first_line)

    print('文件' + fname + '最后一行为:' + last_line)

    with open(fname, 'rb') as f: # 打开文件

    # 在文本文件中,没有使用b模式选项打开的文件,只允许从文件头开始,只能seek(offset,0)

    first_line = f.readline() # 取第一行

    offset = -50 # 设置偏移量

    while True:

    """

    file.seek(off, whence=0):从文件中移动off个操作标记(文件指针),正往结束方向移动,负往开始方向移动。

    如果设定了whence参数,就以whence设定的起始位为准,0代表从头开始,1代表当前位置,2代表文件最末尾位置。

    """

    f.seek(offset, 2) # seek(offset, 2)表示文件指针:从文件末尾(2)开始向前50个字符(-50)

    lines = f.readlines() # 读取文件指针范围内所有行

    if len(lines) >= 2: # 判断是否最后至少有两行,这样保证了最后一行是完整的

    last_line = lines[-1] # 取最后一行

    break

    # 如果off为50时得到的readlines只有一行内容,那么不能保证最后一行是完整的

    # 所以off翻倍重新运行,直到readlines不止一行

    offset *= 2

    print('文件' + fname + '第一行为:' + first_line.decode())

    print('文件' + fname + '最后一行为:' + last_line.decode())

    展开全文
  • python读取文件最后一行

    万次阅读 2019-06-21 18:03:07
    处理文件时,一个常见的需求就是读取文件的最后一行。那么这个需求用python怎么实现呢?一个朴素的想法如下: with open('a.log', 'r') as fp: lines = fp.readlines() last_line = lines[-1] 即使不考虑异常处理...

    处理文件时,一个常见的需求就是读取文件的最后一行。那么这个需求用python怎么实现呢?一个朴素的想法如下:

    with open('a.log', 'r') as fp:
        lines = fp.readlines()
        last_line = lines[-1]
    

    即使不考虑异常处理的问题,这个代码也不完美,因为如果文件很大,lines = fp.readlines()会造成很大的时间和空间开销。

    解决的思路是用将文件指针定位到文件尾,然后从文件尾试探出一行的长度,从而读取最后一行。代码如下:

    def __get_last_line(self, filename):
        """
        get last line of a file
        :param filename: file name
        :return: last line or None for empty file
        """
        try:
            filesize = os.path.getsize(filename)
            if filesize == 0:
                return None
            else:
                with open(filename, 'rb') as fp: # to use seek from end, must use mode 'rb'
                    offset = -8                 # initialize offset
                    while -offset < filesize:   # offset cannot exceed file size
                        fp.seek(offset, 2)      # read # offset chars from eof(represent by number '2')
                        lines = fp.readlines()  # read from fp to eof
                        if len(lines) >= 2:     # if contains at least 2 lines
                            return lines[-1]    # then last line is totally included
                        else:
                            offset *= 2         # enlarge offset
                    fp.seek(0)
                    lines = fp.readlines()
                    return lines[-1]
        except FileNotFoundError:
            print(filename + ' not found!')
            return None
    

    其中有几个注意点:

    1. fp.seek(offset[, where])中where=0,1,2分别表示从文件头,当前指针位置,文件尾偏移,缺省值为0,但是如果要指定where=2,文件打开的方式必须是二进制打开,即使用’rb’模式
    2. 设置偏移量时注意不要超过文件总的字节数,否则会报OSError
    3. 注意边界条件的处理,比如文件只有一行的情况

    原文连接:python读取文件最后一行

    展开全文
  • 广告关闭2017年12月,云+社区对外发布...pos = pos - 1 try: f.seek(pos, 2) #从文件末尾开始读 if f.read(1) == n:break except: #到达文件一行,直接读取,退出 f.seek(0, 0) print f.readline().strip() retur...

    flbm1hkjk6.jpg广告关闭

    2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品。未来,我们一起乘风破浪,创造无限可能。

    pos = pos - 1 try: f.seek(pos, 2) #从文件末尾开始读 if f.read(1) == n:break except: #到达文件第一行,直接读取,退出 f.seek(0, 0) print f.readline().strip() return print f.readline().strip()if __name__ == __main__:f = open(1.txt,rb) #"r’的话会有两个nn pos = 0 for line in range(2):#需要倒数...

    我们有一个大的原始数据文件,我们想要修剪到指定的大小。 我想在python中这样做。 如何在python中获得文本文件的第n行?...

    我如何去做这个python? 我可以用下面的代码读取文件一次,但是我不知道如何将它变成可以读取20行的整个文件,其余的代码必须对10组数据进行操作该20行文件具有。 输入文件中总是会有一定数量的行。 import sysinput = sys.stdinfavouritenumbersinput = [] with open(test.txt, r)as infile: lines_gen = islice...

    我需要读取一个大文件,每次最多读取n行,直到eof。 在python中最有效的方法是什么? 类似于: with open(filename, r) as infile: while not eof: lines = process(lines)...

    利用python读取文件(针对大文件和小文件两种)的首行(第一行)和末行(最后一行)。 脚本借鉴了前人的两种处理思路(在下面的脚本中有注释说明引用出处),并修正了原先两种处理方法中如果文件末尾含有多个空行而返回空行的问题。 脚本内容可以从github上获取:https:github...

    我需要读取一个大文件,每次最多读取n行,直到eof。 with open(filename, r) as infile: while not eof: lines = process(lines)...

    olap1u90u9.png

    并使得小型应用程序能够完全支持复杂的sql,所以没有必要使用文本文件来实现持久存储。? 3、python读取sqlite文件 sqlite3 可使用 sqlite3 模块与 python ...www.runoob.comsqlitesqlite-python.html (chinese) import sqlite3 as db #从sqlite文件中读取数据def readfronsqllite(db_path,exectcmd):conn = db...

    运行结果如下:? a.函数open( )函数open(filename,mode)用于读取文件,返回一个file object。 所以现在我们的f是一个文件对象 参数filename:是一个字符串...因为调用write( )函数的时候,python并不会自动在文本末尾添加换行符 n所以,两句话并没有分行写,就造成了这种情况。 回想一下我们之前说read()函数的...

    使用python读取plist文件并分割原图plist文件简介根据百度百科介绍,plist是一种文件形式,通常用于储存用户设置,也可以用于存储捆绑的信息,该功能在旧式的mac os中是由资源分支提供的。 由于plist中存储的数据是抽象的,其采用的文件格式可以不止一种。 分析plist文件结构可知,其本质是xml文档,因而我们可以使用...

    读取文件要使用文本文件中的信息,首先需要将信息读取到内存中。 为此,你可以一次性读取文件的全部内容,也可以以每次一行的方式逐步读取。 读取整个文件...然而,以写入模式打开文件时千万要小心,因为如果指定的文件已经存在,python 将在返回文件对象前清空该文件。 python 只能将字符串写入文本文件...

    python的os模块可以实现普遍的操作系统功能,并且和平台无关。 以下为实现根目录下文件的批量读取。 os.listdir(dirname)可以列出dirname下的目录和文件,依次读取相应的文件即可。 # -*- coding:utf-8 -*-import os # root_dir为要读取文件的根目录root_dir = re:xxxabstract# 读取批量文件后要写入的文件with open...

    #读取文件所有内容,返回字符串对象,python默认以文本方式读取文件,遇到结束符读取结束。 fr = open(lenses.txt)read = fr.read()print(type(read),read) #读取文件中的一行,每次读取一行,返回字符串对象,只要该文件打开,下次读取上次的下一行。 fr = open(lenses.txt)read = fr.readline()print(type(read)...

    文本文件就好比一个存储水的水池,数据就类似水。 从文本文件中读取数据好比让水池排水。 在这过程中,我们需要一条“管道”才能从读取到数据。 在 python...for line in file: # realine() 读取整行内容,包括 n 字符 print(file.readline().strip()) time.sleep(1)3readlines()realines() 函数跟read()类似,会...

    中文编码问题总是让人头疼(尤其是mac本),想要用python读取word中的内容。 用open()经常报错,通过百度搜索+问身边小伙伴发现了python有专门读取.docx的模块python_docx。 本篇文章主要来解决一个读取docx文件的基本操作。 希望感兴趣的小伙伴可以坚持看下去同时欢迎提出宝贵的意见让我们一起进步! 01:问题抛出与引入...

    我正在为web应用程序编写日志文件查看器,为此,我想通过日志文件的行进行分页。 文件中的项目是基于底部最新项目的行。 所以我需要一个tail()方法可以读取n从底部的线条和支持一个偏移。 我想出来的是这样的: def tail(f, n, offset=0):reads a n lines from f with an offset of offset lines. avg_line_length = ...

    请参见拙文 python 基础 —— 文件 这是一道著名的 python 面试题,考察的问题是,python 读取大文件和一般规模的文件时的区别,也即哪些接口不适合读取大文件。 1. read() 接口的问题f = open(filename, rb)f.read()我们来读取 1 个 nginx的日至文件,规模为 3gb 大小。 read() 方法执行的操作,是一次性全部读入...

    stock total = 20207 day=20160804, ver=1470283608配置文件如下:user1 = num1user2 = num2user3 = num3 keys = stock totalfilepath =homelevel2ibdatacollect.logexepath = homelevel2ibexefile = dcib.exefailmsg =ib init fail! day_of_week = 0-4hour = 06minute = 30python如下:#-*- encoding:utf-8 -*...

    从文件中读取数据读取整个文件这里假设在当前目录下有一个文件名为’pi_digits.txt’的文本文件,里面的数据如下:3.141592653589793238462643383279with open(pi_digits.txt) as f:# 默认模式为"r’,只读模式 contents = f.read() # 读取文件全部内容 printcontents # 输出时在最后会多出一行(read()函数到达文件...

    3b1np8fj6t.png

    复制代码) 二、pandas操作excel表单数据准备,有一个excel文件:lemon.xlsx有两个表单,表单名分别为:python 以及student,python的表单数据如下所示:?...就要在ix#读取第一行第二列的值,这里不需要嵌套列表 print(读取指定行的数据:n{0}.format(data))4:读取指定的多行多列值:df=pd.read_excel(lemon.xlsx...

    一、提前知识点在python中是同样和其他语言一样可以进行文件的读取写入操作,值得注意的是,python中打开文件读取的方式有几种,分别是以下几种:? 1 f = open(username.txt)2 first_line = f.readline()3print(first line:,first_line )4 f.close() view code ? 1 try:2 f = open(username.txt)3 print(f.read() )4 ...

    展开全文
  • 一行一行得从文件读数据,显然比较慢;不过很省内存带缓存的文件读取 readlines 速度最快1. 最基本的读文件方法:?# File: readline-example-1.pyfile = open("sample.txt")while 1:line = file.readline...

    一行一行得从文件读数据,显然比较慢;不过很省内存

    带缓存的文件读取 readlines 速度最快

    1. 最基本的读文件方法:

    ?

    # File: readline-example-1.py

    file = open("sample.txt")

    while 1:

    line = file.readline()

    if not line:

    break

    pass # do something

    一行一行得从文件读数据,显然比较慢;不过很省内存。

    在我的机器上读10M的sample.txt文件,每秒大约读32000行

    2. 用fileinput模块

    ?

    # File: readline-example-2.py

    import fileinput

    for line in fileinput.input("sample.txt"):

    pass

    写法简单一些,不过测试以后发现每秒只能读13000行数据,效率比上一种方法慢了两倍多……

    3. 带缓存的文件读取

    ?

    # File: readline-example-3.py

    file = open("sample.txt")

    while 1:

    lines = file.readlines(100000)

    if not lines:

    break

    for line in lines:

    pass # do something

    这个方法真的更好吗?事实证明,用同样的数据测试,它每秒可以读96900行数据!效率是第一种方法的3倍,第二种方法的7倍!

    ————————————————————————————————————————————————————————————

    在Python 2.2以后,我们可以直接对一个file对象使用for循环读每行数据:

    ?

    # File: readline-example-5.py

    file = open("sample.txt")

    for line in file:

    pass # do something

    而在Python 2.1里,你只能用xreadlines迭代器来实现:

    ?

    # File: readline-example-4.py

    file = open("sample.txt")

    for line in file.xreadlines():

    pass # do something

    展开全文
  • 所以我想从文件读取并将其中的每一行放入列表中.假设我有一个名为MyFile.txt或MyFile.csv的文件,其中包含以下三行数字/小数:49.55,2,77.09,18,1,2.34,32.1133,11.22,33.21,56,76.558,9,44.7,90.99,12.21,1.01我...
  • Python文件内容按行读取到列表中示例文件内容如下:HelloWorldPython通常来讲,我们如果只是迭代文件对象每一行,并做一些处理,是不需要将文件对象转成列表的,因为文件对象本身可迭代,而且是按行迭代:with open('...
  • Python读取文件一行之linecache模块

    千次阅读 2016-11-01 10:59:58
    尝试优化内存,在使用缓存cache读取文件的某一行时,可以使用Python的linecache模块。用法: import linecache linecache.getline(filename,lineno) # filename为文件名 # lineno为要读取的行号 ...
  • python读取文件最后一行两种方法

    千次阅读 2018-09-27 13:58:00
    1)常规方法:从前往后依次读取 步骤:open打开文件。... 读取文件,把文件所有读入内存。 遍历所有,提取指定的数据。 优点:简单,方便 缺点:当文件大了以后时间太慢,无法忍受 2)推荐方法:...
  • python 读取文件最后一行

    千次阅读 2012-02-21 16:58:33
    /usr/bin/env python #-*-coding:utf8-*- #----- william -------- import os,sys,re def readend():  os.chdir('/etc/openvpn/sn10001/etc/')  files = open('server.conf','r')  i = -1
  • python里面,读取或写入csv文件时,首先要import csv这个库,然后利用这个库提供的方法进行对文件的读写。 1、获取每一行 读取csv文件,用的是csv.reader()这个方法。返回结果是一个_csv.reader的对象,我们可以对...
  • curLine))#这里使用的是map函数直接把数据转化成为float类型 dataMat.append(curLine[:]) print('dataMat:',dataMat) 参考链接:https://blog.csdn.net/qq_43243022/article/details/83004413 Python文件操作中的a,...
  • python读取文件首行和最后一行

    千次阅读 2018-06-24 08:09:00
    python读取文件最后一行两种方式 1)常规方法:从前往后依次读取 步骤:open打开文件。 读取文件,把文件所有行读入内存。 遍历所有行,提取指定行的数据。 优点:简单,方便 缺点:当文件大了以...
  • Python读取文件内容

    万次阅读 多人点赞 2018-12-18 16:27:54
    Python 读取文件内容
  • I have a file called test which has the contents:abcdefgI am using the following python code to read this file line by line and print it out:with open('test.txt') as x:for line in x:print(x.read())The...
  • # -*- coding: utf-8 -*-file =open('/Users/april_chou/Desktop/WorkSpace/Selenium/seleniumTest/test.txt','r')context = file.read()print('read格式:')print(context)file.close()print()file =open('/Users/...
  • python 读取文件的最后一行

    千次阅读 2019-06-25 22:01:59
    with open(fname, 'r', encoding='utf-8') as f: # 打开文件 lines = f.readlines() # 读取所有行 first_line = lines[0] # 取第一行 last_line = lines[-1] # 取最后一行 print('文件' + fname...
  • Python读取文件中关键字的一行和下一行 filename = 'E:/ETL/舟山.txt' # 读取文件 pos = [] Efield = [] # count = len(open(filename,'r',encoding = 'utf-8').readlines()) # print(count) fout = open('E:/ETL/...
  • python 读取文本每一行的简单实现

    万次阅读 2018-12-07 23:15:55
    file_path = "" # 文件路径 for line in open(file_path): print(line) # 对每一行进行操作即可  
  • python文件读取一行一行

    千次阅读 2016-07-29 13:15:13
    f=file('a.txt') for eachline in f: print eachline
  • python 读取文件,并跳过空格,将每一行的单词存入List中:代码:f = open("doc_1_Windex.txt","r", encoding='utf-8') lines = f.readlines()#读取全部内容 for i in range(0,lines.__len__...
  • Python 文件文件读取一行(readline)

    万次阅读 2018-11-16 16:17:20
    demo.py(读取一行readline): file = open("readme.txt") while True: text = file.readline() # 只读取一行内容 ... # 每读取一行的末尾已经有了一个 `\n` print(text,end="...
  • python每次读取文件一行输出一行

    千次阅读 2019-09-19 13:27:59
    f=open('test.txt','r') forlineinf: pass printi f.close() 转载于:https://my.oschin...
  • Python读取文件

    千次阅读 2016-07-17 00:33:23
    输入 - 处理 - 输出 - 关闭 IO输入输出,一般操作顺序都是 输入 - 处理 ...使用open() BIF处理文件中的数据时,会创建一个迭代器从文件想你的代码输入数据行,一次读入一行数据(JAVA中的readLine方法,好像吧)。使用
  • python 读取文件跳过第一行

    千次阅读 2017-07-04 10:24:46
    跳过第一行读取数据,使用Python提供的itertools工具 import itertools import islice file = open(…) for line in islice(file, 1, None): …
  • txt文件小#coding:utf-8 ...输出为:文件一行和最后一行 '''fname = 'test.txt' with open(fname, 'r') as f: #打开文件 lines = f.readlines() #读取所有行 first_line = lines[0] #取第一行 last_line = lines[-
  • 背景Background:我的txt文件里面存放的是搜索词,由于原始的query(搜索词)都是用/或者、来分割词,而我要达到的是个词语是单独的一行,并且写入txt第一步:按行读取txt文件s = []f = open('querylist.txt','r') ...
  • python读取文本某一行内容

    千次阅读 2020-03-19 14:56:52
    时常遇到需要读取文本的指定某一行或者某几行的内容。总结方法有两种。 方法一:从头扫描,跳过不关心的行 import linecache linecache.getline('./data.txt', 5) 读取文件的第5行,实际该文件会整个缓存起来,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 171,233
精华内容 68,493
关键字:

python读取文件每一行

python 订阅