tf.gfile.GFile() 中使用的编码是什么?

fig*_*uts 5 python encoding python-3.x tensorflow

tf.gfile.GFile() 不接受“编码”参数。从这里我了解到 gfile 仅返回字节流,但现在似乎已更改为:

with tf.gfile.GFile("./data/squad/test1.txt", mode = "rb") as file1:
    print(file1.read(n = 2), type(file1.read(n = 2)))
with tf.gfile.GFile("./data/squad/test1.txt", mode = "r") as file1:
    print(file1.read(n = 2), type(file1.read(n = 2)))
Run Code Online (Sandbox Code Playgroud)

输出:

b'as' <class 'bytes'>
as <class 'str'>
Run Code Online (Sandbox Code Playgroud)

那么它在读取这些字符串时使用的编码到底是什么?是 utf8 还是像 python 中的开放协议那样依赖于平台?

fab*_*ioM 0

只是一个,byte-stream所以您需要知道文本的字节编码是什么。

您可以使用库来检测编码并将其用作解码方法。截至今天(2020 年 6 月),用于编码检测的最佳 Python 库之一是由 Mozilla 的优秀人员开发的chardet

pip install chardet
Run Code Online (Sandbox Code Playgroud)

如果您知道是“utf-8”,您可以使用以下命令对其进行解码

pip install chardet
Run Code Online (Sandbox Code Playgroud)