You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python读取13MB文件时出现数据丢失问题求助

问题分析与解决

你的代码存在逻辑错误,导致仅打印了文件的偶数行,丢失了包括首行在内的所有奇数行:

  • 每次循环中,while file.readline()会读取一行用来判断是否还有内容,但这行并没有被打印;紧接着print(file.readline())又读取下一行并打印。
  • 这种逻辑会跳过所有奇数行,所以首行<!DOCTYPE html>没被输出,控制台也搜不到原本在奇数行的目标数据。

修复方案一:用变量存储读取的行

def get_txt(path):
    with open(path, 'r', encoding='utf-8') as file:
        line = file.readline()
        while line:
            print(line, end='')  # 保留原文件换行,避免重复添加换行符
            line = file.readline()

if __name__ == '__main__':
    path = 'data/data.html'
    get_txt(path)

修复方案二:直接遍历文件对象(更简洁)

Python的文件对象本身可迭代,直接遍历能逐行读取且不会遗漏:

def get_txt(path):
    with open(path, 'r', encoding='utf-8') as file:
        for line in file:
            print(line, end='')

if __name__ == '__main__':
    path = 'data/data.html'
    get_txt(path)

注意:添加end=''是因为读取到的每行本身已经包含换行符,print()默认会再添加一个换行,会导致输出的行间距变大,影响格式。

内容的提问来源于stack exchange,提问作者fei li

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 15:05:27