tf.gfile.Glob为了解决这个问题而给出了UnicodeDecodeError错误?

时间:2017-10-09 02:22:32

标签: python tensorflow

我试图使用下面的代码获取在指定目录中用韩语编写的txt文件的名称列表

dir_list = tf.gfile.Glob(engine.TXT_DIR+"/*.txt")

但是,这个给了我以下错误:

Traceback (most recent call last):
File "D:/Prj_mayDay/Prj_FrankenShtine/shakespear_reborn/main.py", line 108, in <module>
    dir_list = tf.gfile.Glob(engine.TXT_DIR+"/*.txt")
  File "D:\KimKanna's Class\python35\lib\site-packages\tensorflow\python\lib\io\file_io.py", line 326, in get_matching_files
    compat.as_bytes(filename), status)
  File "D:\KimKanna's Class\python35\lib\site-packages\tensorflow\python\lib\io\file_io.py", line 325, in <listcomp>
    for matching_filename in pywrap_tensorflow.GetMatchingFiles(
  File "D:\KimKanna's Class\python35\lib\site-packages\tensorflow\python\util\compat.py", line 106, in as_str_any
    return as_str(value)
  File "D:\KimKanna's Class\python35\lib\site-packages\tensorflow\python\util\compat.py", line 84, in as_text
    return bytes_or_text.decode(encoding)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbb in position 19: invalid start byte

现在,在一些研究中,我发现了reason

  

错误是因为字典中有一些非ascii字符,无法对其进行编码/解码

但是,我没有看到任何方法将解决方案应用到我的代码中。或者在那里?

**如果有替代代码。它应该适用于云级存储桶/我的个人硬盘驱动器,如上面的代码所做的那样。

我使用的是python3,Tensorflow版本的1.2.0-rc2

1 个答案:

答案 0 :(得分:0)

所以经过几个小时摆弄我的代码后,我终于找到了解决方案。 我指定的目录中的文件之一在Korean中有一个名称。我把它从目录中拿出来之后。问题消失了。