一个文件大小1TB,就一行怎么处理?
都是int类型数据,空格分割,但只有一行
既然很大很长...,肯定用不了readline或readlines。只能read,一点一点的...
# 问题:https://ask.csdn.net/questions/7477915
# 从非常长非常长的一行全是数字的字符串里拿到最大的数字。数字直接用空格分隔
# 理想状态:这一行字符串除了数字、空格、结尾的换行(也可不换行),没有别的了
# 需求:取最大的数字
# 示例:【1 324 4 009 】,得到324
big_line_file = "/Users/abc/workspace/HelloPython/ask_and_answer/a.txt"
max_num = 0
with open(big_line_file, "r") as f:
tmp = []
while True:
a = f.read(1) # 每次读1个字符。如果字符串中的 数字 和 空格 是相同的固定位数的,这里可以改成位数
if a.isspace(): # 空格,制表,换行,都返回true
if len(tmp) > 0:
num_str = "".join(tmp)
num = int(num_str)
tmp = []
if num > max_num:
max_num = num
else:
tmp.append(a)
if (not a) or "\n" == a or "\r" == a or "\r\n" == a:
break # 读完了
print(max_num)
你这,说清楚点咯。就是想按空格换个行吗