博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
文件中seek的用法补充
阅读量:4970 次
发布时间:2019-06-12

本文共 1022 字,大约阅读时间需要 3 分钟。

绝对路径:

1 f = open('seek','r',encoding='utf-8')2 print(f.tell())3 f.seek(10,0)#从起始位置开始4 print(f.tell())5 f.seek(3,0)6 print(f.tell())
运行结果: 0103Process finished with exit code 0

 相对路径:

1 f = open('seek','rb')#以b方式打开  不能有encoding(冲突)2 print(f.tell())3 f.seek(10,1)4 print(f.tell())5 f.seek(3,1)#相对于106 print(f.tell())

运行结果:

01013Process finished with exit code 0

倒叙输出:

1 f = open('seek','rb')2 print(f.tell())3 f.seek(-5,2)#\r\n会被读出来 读取后面五个字节4 print(f.read())

建议循环文件的方式:

#循环文件的方式for i in file:#一次取一行,并且方式为要一行去一行    print(i)

 

seek应用:

1 #需求:读取日志文件最后一条记录2 第一种方式:【不推荐】3 f = open('日志文件','rb')4 data = f.readlines()#读取整个文件 作为列表 占用大量内存且无用5 print(data[-1].decode('utf-8'))
1 #大文件的最后一行读取方式(可应用于日志文件)【推荐】 2 f = open('seek','rb') 3 for i in f: 4     offs=-10#定义一个偏移量 大概每条记录的字节数 5     while True: 6         f.seek(offs,2)#每一次都seek10个 7         data = f.readlines() 8         if len(data)>1: 9             print('文件的最后一行是:%s'%(data[-1]).decode('utf-8'))10             break11         offs*=2

 

转载于:https://www.cnblogs.com/gl-gl/p/9135376.html

你可能感兴趣的文章
【TP SRM 703 div2 500】 GCDGraph
查看>>
webdriver api
查看>>
apache 实现图标缓存客户端
查看>>
揭秘:黑客必备的Kali Linux是什么,有哪些弊端?
查看>>
linux系统的远程控制方法——学神IT教育
查看>>
springboot+mybatis报错Invalid bound statement (not found)
查看>>
Linux环境下SolrCloud集群环境搭建关键步骤
查看>>
P3565 [POI2014]HOT-Hotels
查看>>
MongoDB的简单使用
查看>>
hdfs 命令使用
查看>>
prometheus配置
查看>>
【noip2004】虫食算——剪枝DFS
查看>>
python 多进程和多线程的区别
查看>>
sigar
查看>>
iOS7自定义statusbar和navigationbar的若干问题
查看>>
[Locked] Wiggle Sort
查看>>
deque
查看>>
Setting up a Passive FTP Server in Windows Azure VM(ReplyCode: 227, Entering Passive Mode )
查看>>
c#中从string数组转换到int数组
查看>>
数据模型(LP32 ILP32 LP64 LLP64 ILP64 )
查看>>