在python中使用replace()函数无效的起始字节错误

时间:2018-08-21 23:25:36

标签: python replace

我正在运行一个简单的代码,将文件中的单词替换为另一个单词,如下所示:

import random
import os

path = '/path/of/file/'
files = os.listdir (path)

for file in files:
    with open (path + file) as f:
        newText = f.read().replace('Plastic Ba','PlasticBag')

    with open (path + file, "w") as f:
        f.write(newText)

这样做,我得到一个以前从未遇到过的错误:

Traceback (most recent call last):
  File "replaceText.py", line 9, in <module>
    newText = f.read().replace('Plastic Ba', 'PlasticBag')
  File "/Users/vivek/anaconda3/lib/python3.6/codecs.py", line 321, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 3131: invalid start byte

我不确定这是什么意思还是这里的错误是什么?我过去多次运行此脚本,没有任何问题。解决这个问题的任何帮助都会很棒!

1 个答案:

答案 0 :(得分:0)

您是否尝试将文件编码为'UTF-8'? 请检查“打开”功能参数,

@Donkey@

在您的脚本中,尝试使用

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

您还可以签出编解码器库中可用的 open 方法。 请检查这个问题。 Unicode (UTF-8) reading and writing to files in Python

UnicodeDecodeError: 'utf8' codec can't decode byte 0x80 in position 3131: invalid start byte