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

文件原地批量替换时遭遇UnicodeDecodeError错误求助

解决fileinput的UnicodeDecodeError问题

嘿,我来帮你搞定这个编码报错的问题!你遇到的UnicodeDecodeError是因为fileinput默认会用系统的默认字符编码(比如Windows上的cp1252这类charmap编码)打开文件,而你的文件里存在这个编码无法识别的字节,导致解码失败。

修复后的代码

只需要给fileinput.FileInput加上指定编码的参数,就能解决这个问题了。优先推荐用UTF-8编码(如果你的文件是这个编码的话),代码如下:

import fileinput

# 替换成你要处理的实际文件名
filename = "your_target_file.txt"
with fileinput.FileInput(filename, inplace=True, backup='.bak', encoding='utf-8') as file:
    for line in file:
        # 先把制表符替换成◊,再把⁞替换回制表符
        processed_line = line.replace('\t', '◊').replace('⁞', '\t')
        print(processed_line, end='')

额外说明

  • 如果你的文件不是UTF-8编码(比如GBK、GB2312等),就把encoding='utf-8'换成对应的编码名称就行。
  • 要是不确定文件的编码,可以用Notepad++这类编辑器打开文件,右下角会显示当前文件的编码,直接照搬就行。
  • 万一还是有解码问题,可以临时加上errors='replace'参数(比如encoding='utf-8', errors='replace'),它会把无法解码的字符替换成占位符,避免报错,但可能会丢失少量字符信息,所以优先推荐找对文件编码。

内容的提问来源于stack exchange,提问作者Sandu Ursu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:16:59