我的博客

Python从后往前读文件

目录
  1. 使用os.path.getsize 获取文件大小
  2. 使用 file_obj.seek 移动文件指针到文件末尾减一处
  3. 每次读取一个字符,并将文件指针向前移动一

代码实现如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import os


def tail_read(f, n):
cur_pos = f.tell()
buf = b''
while n:
b = f.read(1)
buf = b + buf
cur_pos -= 1
if cur_pos < 0: break
f.seek(cur_pos)
n -= 1
return buf


def tail_open(file):
fsize = os.path.getsize(file)
f = open(file, 'rb')
f.seek(fsize - 1)
return f


if __name__ == '__main__':
import sys
f = tail_open(sys.argv[1])
buf = tail_read(f, int(sys.argv[2]))
print (buf)

python2和python3都可运行 测试方法(读取文件名为file的文件的最后100个字节):

  1. 把代码保存成tail_read.py
  2. 执行 python tail_read.py file 100

评论无需登录,可以匿名,欢迎评论!