python读取大文件目录_65.Python读取大文件

方式一

import os

path = r"C:\Users\yzt\Desktop\work\InfosecTestPlatform\libs\Log\mainline1-nohup.log"

#####################

"""

file.seek(off, whence=0):

从文件中移动off个操作标记(文件指针),正往结束方向移动,负往开始方向移动。

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

"""

#####################

f = open(path, "r", encoding='utf-8')

print(f.tell())

f.seek(10)

print(f.tell())

f.seek(3)

print(f.tell())

#####################

f = open(path, "rb")

size = os.path.getsize(path)

print(size)

print(f.tell()) # 获取文件指针位置

# print(f.tell())

f.seek(10, 1) # 1表示正续移动, 1表示当前位置,10表示想后移动10个字符

print(f.tell())

f.seek(-15, 2) # 2表示倒叙移动,2表示从文件末尾开始,-15表示向前移动15个字符

print(f.tell())

print(f.readlines()[-1].decode()) # 这个时候光标移动到了文件的-15个字符处,直接读取其后面的文字(注意需要使用decode解码)

# 方式一: 写一个函数使用,我需要读取文件的后0.15M(可以自行调节)数据返给前端

def read_log(path):

log_read_size = 150 * 1024 # 默认读取0.5M数据(文件的最后0.1M大约500-100行)

size = os.path.getsize(path)

logFile = open(path, 'rb')

if size > log_read_size:

print(size, "*" * 50)

logFile.seek(0, 2)

logFile.seek(-log_read_size, 2)

str1 = logFile.read().decode()

print(len(str1))

return str1

else:

return logFile.read().decode()

read_log(path)

方式二

import os

path = r"C:\Users\yzt\Desktop\work\InfosecTestPlatform\libs\Log\mainline1-nohup.log"

def tail(inputfile):

"""这个函数也可以做到读取文件后几行数据,不足之处需要自己改"""

file_size = os.path.getsize(inputfile)

block_size = 1024

dat_file = open(inputfile, 'r')

last_line = ""

if file_size > block_size:

maxseekpoint = (file_size // block_size) # 最为seek的最大值

dat_file.seek((maxseekpoint - 1) * block_size)

elif file_size:

# maxseekpoint = block_size % file_size

dat_file.seek(0, 0)

lines = dat_file.readlines()

if lines:

# last_line = lines[-1].strip()

# 最后两行,N行就改数字,即可

last_line = lines[-2:]

# print "last line : ", last_line

dat_file.close()

return last_line

错误方式(其实一开始是好的然后过了一周用不了了我很懵逼)

1G文件读取后五千行

import os

from InfosecTestPlatform import settings

file_url = os.path.join(settings.BASE_DIR, "libs/Log/mainline1-jmeter.log")

print(os.path.exists(file_url))

fp = open(file_url, 'r', encoding='utf-8')

# 我将1G的文件,读出来放在一个生成器中

file_list = [line for line in fp]

# 使用列表反向切片方式读取,后5000行

file_last_5000 = file_list[:-5001:-1]

# 由于数据是方向的所有再次方向读取,还原为正向

file_last = file_last_5000[::-1]

# 之后拼接返回

str1 = "".join(file_last)

# 下面是我是用循环写了一个1G的日志文件

# fp_w = open(file_url, 'w', encoding='utf-8')

# for i in range(500):

# fp_w.write("")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/244936.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java设计按月每天签到_java实现app签到功能

本文实例为大家分享了java实现app签到功能的具体代码,供大家参考,具体内容如下1.首先设计二张表,第一张表sign_calc记录用户连续签到次数,字段id,user_id,continue_days,第二张表sign_detail签到详情表id,user_id,sign…

c语言第四版课后答案第三章3.4,算法与数据结构C语言版课后习题答案(机械工业出版社)第3,4章 习题参考答案...

第3章栈和队列一、基础知识题3.1 有五个数依次进栈:1,2,3,4,5。在各种出栈的序列中,以3,4先出的序列有哪几个。(3在4之前出栈)。【解答】34215 ,34251&#x…

python面向对象三大基本特性_python面向对象之三大特性

继承 先看个简单的例子了解一下继承。class Animal: #父类 def __init__(self, name, age, department): self.namename self.ageage self.departmentdepartmentdefrunning(self):print(‘%s可以奔跑!‘%self.name)class Cat(Animal): #括号里放要继承的父类 def __…

用python做透视表_用Python实现数据的透视表的方法

用Python实现数据的透视表的方法来源:中文源码网 浏览: 次 日期:2019年11月5日【下载文档: 用Python实现数据的透视表的方法.txt 】(友情提示:右键点上行txt文档名->目标另存为)用Python实现数据的透视表的方法在处理数据时&#x…

c语言编程用进退法求搜索区间代码,用c对函数进行优化的问题

//多维无约束优化软件设计#include #include #include double det1e-5; //计算精度double det11e-3; //梯度判断精度double ak3e-3; //搜索步长double dx1e-4; //梯度计算步长/*目标函数(n维)入口参数:x :n维数组,自变量返回值 :函…

python关闭指定浏览器页面_Python自动关闭浏览器关闭网页的方法

在py编辑窗口中输入代码: from selenium.webdriver.chrome.options import Options from selenium import webdriver __browser_url rC:\Users\Administrator\AppData\Roaming\360se6\Application\360se.exe chrome_options Options() chrome_options.binary_loca…

ubuntu 安装kde桌面_在Ubuntu 20.04系统上安装KDE Plasma Desktop的方法

本文介绍在Ubuntu 20.04系统上安装KDE Plasma Desktop的方法。Plasma Desktop是KDE创建的一种流行且功能强大的桌面环境,主要用于Linux系统。KDE Plasma的当前版本是5,它是KDE Plasma 4的后续版本,旨在帮助您以高效的方式完成工作。当Plasma强…

c语言将字母的acsaii,C语言上机实验 答案

《C语言上机实验 答案》由会员分享,可在线阅读,更多相关《C语言上机实验 答案(31页珍藏版)》请在装配图网上搜索。1、实验一 上机操作初步(2学时)一、实验方式:一人一机二、实验目的:1、熟悉VC语言的上机环境及上机操作过程。2、了…

python怎么调用列表_Python中列表的使用

python中的列表与java中的数组非常类似,但使用方法比java中数组简单很多,python中的数据类型不需要显示声明,但在使用时必须赋值,列表元素下标从0开始 初始化列表(初始化一个包含五个元素的列表和一个空列表&#xff0…

videowriter最小的编码格式_cv2.VideoWriter() 指定写入视频帧编码格式

今天用opencv保存的视频文件超级大,被小伙伴们嘲笑,哈哈,原来是视频帧编码格式导致的,这里记录下常用的保存视频编码格式。编码参数:cv2.VideoWriter_fourcc(‘I‘,‘4‘,‘2‘,‘0‘)---未压缩的YUV颜色编码&#xff…

C语言和JAVA可以互相转换吗,求助大神!!!JAVA转换成C语言

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼//此处不要看,c应该内置了这个函数,不需要自定义Array.prototype.remove function(val) {var index this.indexOf(val);if (index > -1) {this.splice(index,1);}};//名称:获取当天上班的人//参数&…

windows消息队列C语言,08年计算机二级C语言辅导:vc操作微软消息队列的方法

定义IMSMQQueuePtr qDest; // Represents Destination QueueIMSMQQueueInfoPtr qInfo; //Represents an open instance of the destination queueIMSMQQueueInfoPtr qRead;IMSMQMessagePtr qMsg; //Represents the message初始化qDest NULL;CoInitialize(NULL);try{qInfo.Crea…

jwt重放攻击_【干货分享】基于JWT的Token认证机制及安全问题

一步一步教你基于JWT的Token认证机制实现,以及如何防范XSS攻击、Replay攻击和中间人攻击。文章目录一、几种常用的认证机制1.1 HTTP Basic AuthHTTP Basic Auth简单点说明就是每次请求API时都提供用户的username和password,简言之,Basic Auth…

jquery find 找到frame select_简述jQuery

jQuery 是一个高效、精简并且功能丰富的 JavaScript 工具库。它提供的 API 易于使用且兼容众多浏览器,这让诸如 HTML 文档遍历和操作、事件处理、动画和 Ajax 操作更加简单。一、获取元素jQuery的核心设计思想就是获取元素,然后对其操作;因此…

求中位数中回文数之和C语言,一些算法题及答案

1. 两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums [2, 7, 11, 1…

自然哲学的数学原理_物理起源点,牛顿《自然哲学的数学原理》

1687年 英国艾萨克牛顿(Sir Isaac Newton,1643—1727),英国物理学家、数学家、天文学家、自然哲学家和炼金术士。1687年他发表《自然哲学的数 学原理》,阐述了万有引力和三大运动定律,奠定了此后三个世纪里力学和天文学的基础&…

如何将另外一个表里的数据与联动_跨境电商(亚马逊)后台财务数据包

亚马逊后台的财务数据包是刚进这个行业的财务人员最希望能了解熟悉的,这块也是相对于国内财务比较有难度的内容,主要难点是亚马逊平台是新的东西,国内财务对规则,费用内容,流程都比较懵,另外就是各项资料都…

java和python混合编程_浅谈C++与Java混合编程

在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,更多Java学习,请登陆疯狂java官网。现实的情况是,真实的项目中,通常是涉…

无法在源表中获得一组稳定的行_行输出变压器的结构、符号及电路分析

行输出变压器又称逆程变压器、回扫变压器,俗称行输出,它是电视机、显示器中的一个重要变压器。1.行输出变压器结构行输出变压器的全部绕组和高压整流管均密封在其中,底部引出各个绕组的引脚,高压输出采用高压引线直接送至显像管的…

c语言中bluetooth函数,C语言中的低功耗蓝牙-使用Bluez创建GATT服务器

小编典典我得到了运行BlueZ 5.31的示例GATT服务器(截至本文的最新信息):我的环境: 作为来宾OS(版本14.04 32位操作系统)的VagrantVirtual BoxUbuntu Trusty Tahr更新到linux内核3.19已安装的软件包:libglib2.0-dev libdbus-1-devlibudev-dev …