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

Python读取文件行数失败,报UnicodeDecodeError错误求助

解决Python读取文件时的UnicodeDecodeError错误

问题原因

报错是因为Windows系统默认用cp1252编码打开文件,但programms.txt包含该编码无法识别的字符(位置299的0x9d字节),导致解码失败。

解决方案

1. 指定文件正确编码打开

先确认文件实际编码(通常为UTF-8),修改open()函数显式指定编码参数:

fhand = open('programms.txt', encoding='utf-8')
count = 0
for line in fhand:
    count += 1
print('Line Count: ', count)
fhand.close()  # 建议手动关闭文件,避免资源泄漏

2. 使用with语句自动管理文件(推荐)

with语句会自动关闭文件,同时指定编码更安全:

count = 0
with open('programms.txt', encoding='utf-8') as fhand:
    for line in fhand:
        count += 1
print('Line Count: ', count)

3. 忽略无法解码的字符(临时应急)

若不确定文件编码且可接受丢失部分字符,可添加errors='ignore'参数:

with open('programms.txt', encoding='utf-8', errors='ignore') as fhand:
    count = sum(1 for line in fhand)  # 生成器表达式统计行数更简洁高效
print('Line Count: ', count)

额外提示

  • 可用VS Code等文本编辑器打开文件,查看右下角显示的编码,确认后填入encoding参数。
  • 统计行数用sum(1 for line in fhand)比循环累加的写法更高效。

内容的提问来源于stack exchange,提问作者131 Mohammad Ubaida

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 17:24:16