我有一系列文本文件。
它们都以浮动结束,没有前面的空格
...foo123.456
。浮点数具有无限的数字。
文件很大所以我想避免在内存中完全读取它们。 它们也有不同的尺寸。
如何避免读取整个文件?
答案 0 :(得分:2)
只需读取最后几个字节并使用正则表达式来提取浮点数。
未测试:
import re
with open('/path/to/file.txt') as input_file:
input_file.seek(-100, 2)
last_100_bytes = input_file.read()
match = re.search(r'\D(\d+\.\d+)$', last_100_bytes)
if match:
print('The float is {}'.format(match.group(0)))
else:
print('no float found at the end of the file')