https://github.com/affinelayer/pix2pix-tensorflow/tree/master/tools

在上面的站点上编译“process.py”时发生错误。

 python tools/process.py --input_dir data --            operation resize --outp
ut_dir data2/resize
data/0.jpg -> data2/resize/0.png

回溯(最近一次调用):

File "tools/process.py", line 235, in <module>
  main()
File "tools/process.py", line 167, in main
  src = load(src_path)
File "tools/process.py", line 113, in load
  contents = open(path).read()
      File"/home/user/anaconda3/envs/tensorflow_2/lib/python3.5/codecs.py", line 321, in decode
  (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode     byte 0xff in position 0: invalid start byte

错误的原因是什么? Python的版本是3.5.2。


当前回答

如果可能,在文本编辑器中打开该文件,并尝试将编码更改为UTF-8。否则,在操作系统级别以编程方式进行。

其他回答

有一个类似的问题,最后使用UTF-16解码。我的代码如下。

with open(path_to_file,'rb') as f:
    contents = f.read()
contents = contents.rstrip("\n").decode("utf-16")
contents = contents.split("\r\n")

这将把文件内容作为导入,但它将以UTF格式返回代码。从那里开始,它将被解码并以行分隔。

我有一个类似的问题,并在互联网上搜索这个问题

如果你有这个问题,只需复制你的HTML代码在一个新的HTML文件,并使用正常的<meta charset="UTF-8"> 它将工作....

只需在相同的位置创建一个新的HTML文件,并使用不同的名称

如果可能,在文本编辑器中打开该文件,并尝试将编码更改为UTF-8。否则,在操作系统级别以编程方式进行。

我也遇到过类似的问题。

解决方法:

import io

with io.open(filename, 'r', encoding='utf-8') as fn:
  lines = fn.readlines()

然而,我遇到了另一个问题。一些html文件(在我的情况下)不是utf-8,所以我收到了类似的错误。当我排除这些html文件时,一切都很顺利。

所以,除了修复代码,还要检查你正在读取的文件,也许确实存在不兼容性。

使用此解决方案,它将剥离(忽略)字符并返回不包含它们的字符串。只有使用这个,如果你的需要是剥离他们不转换他们。

with open(path, encoding="utf8", errors='ignore') as f:

使用错误=“忽略” 你会丢失一些字符。但如果你不关心他们,因为他们似乎是额外的字符源于一个糟糕的格式和编程的客户端连接到我的套接字服务器。 那么这是一个简单的直接解决方案。 参考