方式一

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("")

python读取大文件目录_65.Python读取大文件相关推荐

  1. python读取大文件目录_python简单读取大文件的方法

    python简单读取大文件的方法 更新时间:2016年07月01日 10:42:14 作者:holybin 这篇文章主要介绍了python简单读取大文件的方法,通过非常简单的方式实现对GB级别大文件的 ...

  2. python基础之拆包、匿名函数、文件的初级应用

    拆包 定义 解压序列,赋值给多个变量.这个序列可以是元组.列表.字典. 拆包的过程 1.元组拆包 如果不知道拆包,获取元素可以这样写 用拆包可以这样写. 常用的是这样的.元组有一种定义方式是不加括号的 ...

  3. python中0xff_强悍的Python读取大文件的解决方案

    这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适合读取大文件. 1. read() 接口的问题 f =open(filename, ...

  4. python读取fiddler_大数据采集之python的docker爬虫技术-fiddler抓包软件详细配置(7)...

    本篇文章探讨了大数据采集之python的docker爬虫技术-fiddler抓包软件详细配置(7),希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入. 挑选常用的功能给各位老铁介绍下 ...

  5. Python+Flask实现全国、全球疫情大数据可视化(二):网页页面布局+echarts可视化中国地图、世界地图、柱状图和折线图

    文章目录 相关文章 一.实现效果 二.页面布局html+css main.html main.css 三.echarts图表制作 1.全国累计趋势折线图ec_l1.js 2.全国趋势变化折线图ec_l ...

  6. python数据量太大如何解决_Python 如何处理大文件

    Python作为一门程序设计语言,在易读.易维护方面有独特优势,越来越多的人使用 Python 进行数据分析和处理,而 Pandas 正是为了解决数据分析任务而创建的,其包含大量能便捷处理数据的函数和 ...

  7. python pdf-有没有好一点的读取 PDF 的 Python 包?

    专注Python.AI.大数据 @七步编程 ​PDF(Portable Document Format),中文名称便携文档格式是我们经常会接触到的一种文件格式,文献.文档...很多都是PDF格式.它以 ...

  8. python能处理多大的数据-Python 适合大数据量的处理吗?

    python 能处理数据库中百万行级的数据吗? 处理大规模数据时有那些常用的python库,他们有什么优缺点?适用范围如何? 王守崑,推荐系统,数据挖掘 需要澄清两点之后才可以比较全面的看这个问题: ...

  9. 使用python数据分析的研究意义_大数据分析语言Python的价值和意义

    Python提供了大量用于处理大数据的库.就开发代码而言,您还可以比其他任何编程语言更快地使用Python处理大数据.这两个方面使世界各地的开发人员能够将Python视为大数据项目的首选语言.要获得有 ...

最新文章

  1. Python 骚操作:微信远程控制电脑
  2. mysql字符集和表字符集_设置数据库的字符集和设置表字段字符集的区别是什么?...
  3. 人工智能写出第一篇文章:我真的没想要消灭你们,人类!
  4. 产业企业和投资机会研究(中小板、创业板) 碧水源(300070)创业板
  5. 《伟大的小细节:互联网产品设计中的微创新思维》——
  6. java代码里的JSON格式怎么写好看_谁会不爱让代码骚里骚气的VSCode扩展插件呢?...
  7. 牛顿法, Jacobian矩阵 和 Hessian矩阵
  8. 【今日CV 视觉论文速览】Thu, 21 Feb 2019
  9. bar()函数——python绘制柱状图
  10. 联合索引会创建几个索引_【1033期】分别谈谈联合索引生效和失效的条件
  11. 51Nod-1080 两个数的平方和【暴力法】
  12. NYOJ845 - 无主之地1
  13. YOLO学习笔记——第三篇YOLOv3(含FPN网络解析)
  14. 中标麒麟操作系统yum源配置
  15. 【异常】The field file exceeds its maximum permitted size of 1048576 bytes.
  16. 学术研究如何选定方向,确定论文题目
  17. python制作模型排放清单_机动车尾气污染物排放模型研究综述.pdf
  18. 软件工程小组需求分析--快递代领
  19. Scrapy抓站:大批量下载360指定专题下的照片并保存到sql和本地文件夹下
  20. Linux制作python的AWS-KCL的基础镜像,Dockerfile文件

热门文章

  1. java 日期及别的小技巧
  2. c语言不被O2优化,【图片】今天写几个性能测试,为什么C语言跑得这么慢呢??【c语言吧】_百度贴吧...
  3. html日历显示不完整,求html代码,显示日历和时间的代码
  4. php安装,PHP安装
  5. ustc linux 网络通,USTC 网络通脚本
  6. php sqlsrv 下载,php_sqlsrv_ts.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家...
  7. ibm mq并发访问队列_消息队列之九问九答
  8. ajax获取shiroehcache,Shiro – 使用EhCache缓存
  9. freopen()的重定向打开或者关闭
  10. Stone game(dp计数上海icpc网络预选赛)