䴺矏 2021-07-21 19:18 采纳率: 25%
浏览 41
已结题

python处理文件

一个文件大小1TB,就一行怎么处理?
都是int类型数据,空格分割,但只有一行

  • 写回答

2条回答 默认 最新

  • vigiles 2021-07-21 21:16
    关注

    既然很大很长...,肯定用不了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)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月28日
  • 已采纳回答 7月21日
  • 创建了问题 7月21日