rabin 6 سال پیش
والد
کامیت
a8a2ed6177
1فایلهای تغییر یافته به همراه24 افزوده شده و 24 حذف شده
  1. 24 24
      demeter/core.py

+ 24 - 24
demeter/core.py

@@ -564,33 +564,33 @@ class File(object):
 	@classmethod
 	def tail(self, filepath, n=10):
 	
-	res = ""
-	with open(filepath, 'rb') as f:
-		f_len = f.seek(0, 2)
-		rem = f_len % PAGE
-		page_n = f_len // PAGE
-		r_len = rem if rem else PAGE
-		while True:
-			# 如果读取的页大小>=文件大小,直接读取数据输出
-			if r_len >= f_len:
-				f.seek(0)
-				lines = f.readlines()[::-1]
-				break
+		res = ""
+		with open(filepath, 'rb') as f:
+			f_len = f.seek(0, 2)
+			rem = f_len % PAGE
+			page_n = f_len // PAGE
+			r_len = rem if rem else PAGE
+			while True:
+				# 如果读取的页大小>=文件大小,直接读取数据输出
+				if r_len >= f_len:
+					f.seek(0)
+					lines = f.readlines()[::-1]
+					break
 
-			f.seek(-r_len, 2)
-			# print('f_len: {}, rem: {}, page_n: {}, r_len: {}'.format(f_len, rem, page_n, r_len))
-			lines = f.readlines()[::-1]
-			count = len(lines) -1   # 末行可能不完整,减一行,加大读取量
+				f.seek(-r_len, 2)
+				# print('f_len: {}, rem: {}, page_n: {}, r_len: {}'.format(f_len, rem, page_n, r_len))
+				lines = f.readlines()[::-1]
+				count = len(lines) -1   # 末行可能不完整,减一行,加大读取量
 
-			if count >= n:  # 如果读取到的行数>=指定行数,则退出循环读取数据
-				break
-			else:   # 如果读取行数不够,载入更多的页大小读取数据
-				r_len += PAGE
-				page_n -= 1
+				if count >= n:  # 如果读取到的行数>=指定行数,则退出循环读取数据
+					break
+				else:   # 如果读取行数不够,载入更多的页大小读取数据
+					r_len += PAGE
+					page_n -= 1
 
-	for line in lines[:n][::-1]:
-		res += line.decode('utf-8')
-	return res
+		for line in lines[:n][::-1]:
+			res += line.decode('utf-8')
+		return res
 
 class Shell(object):
 	@staticmethod