Skip to main content
 首页 » 编程设计

Python之Python 3.1 似乎无法处理 UTF-16 编码的文件

2025年05月04日12yyy_WW

我正在尝试运行一些代码来简单地遍历一堆文件,并将那些恰好是 .txt 文件的文件写入同一个文件,删除所有空格。下面是一些应该可以解决问题的简单代码:

for subdir, dirs, files in os.walk(rootdir): 
for file in files: 
    if '.txt' in file: 
        f = open(subdir+'/'+file, 'r') 
        line = f.readline() 
        while line: 
            line2 = line.split() 
            if line2: 
                output_file.write(" ".join(line2)+'\n') 
            line = f.readline() 
        f.close() 

但是,我收到以下错误:

文件“/usr/lib/python3.1/codecs.py”,第 300 行,在解码中 (结果,消费)= self._buffer_decode(数据,self.errors,最终) UnicodeDecodeError:“utf8”编解码器无法解码位置 0 中的字节 0xfe:意外代码字节

事实证明,这些 .txt 文件都是 UTF-16 格式的(至少根据 FireFox 的说法)。我认为 Python 3.x 应该能够处理任何类型的字符编码??

最好的, 乔治娜

请您参考如下方法:

使用 open(bla, 'r', encoding="utf-16")。