TensorFlow:使用gfile.FastGfile()方法无法读取文件,其路径包含中文字符

时间:2017-04-27 11:18:03

标签: unicode tensorflow

我想阅读使用gfile.FastGFile(image_path, 'rb').read()来阅读图片并将其用作我项目的输入,并使用目录名作为这些图片的标签,这些图片包含在目录中,当目录名称时是英文,我的代码工作正常,但当目录名称是中文时,它会抛出此错误:

Traceback (most recent call last):
  File "F:/pythonWS/imageFilter/jpegFileJudge.py", line 27, in <module>
    image_data = gfile.FastGFile(image_path, 'rb').read()
    File "C:\Program Files\Python35\lib\site-
    packages\tensorflow\python\lib\io\file_io.py", line 106, in read
    self._preread_check()
    File "C:\Program Files\Python35\lib\site-
    packages\tensorflow\python\lib\io\file_io.py", line 73, in _preread_check
    compat.as_bytes(self.__name), 1024 * 512, status)
    File "C:\Program Files\Python35\lib\contextlib.py", line 66, in __exit__
    next(self.gen)
    File "C:\Program Files\Python35\lib\site-
    packages\tensorflow\python\framework\errors_impl.py", line 466, in 
    raise_exception_on_not_ok_status
    pywrap_tensorflow.TF_GetCode(status))
    tensorflow.python.framework.errors_impl.NotFoundError: NewRandomAccessFile 
    failed to Create/Open: F:\vsWorkspace\pics\test\三宝鸟
    \0ff41bd5ad6eddc403fa02d13bdbb6fd526633fe.jpg : 
    ϵͳ\udcd5Ҳ\udcbb\udcb5\udcbdָ\udcb6\udca8\udcb5\udcc4\udcceļ\udcfe\udca1\udca3

我的测试代码是:

# -*- coding: utf-8 -*-
import glob
import os
import random
import numpy as np
import tensorflow as tf
from tensorflow.python.platform import gfile
image_folder='F:/vsWorkspace/pics/test'
os.chdir(image_folder)
count=0
for each in os.listdir(image_folder):
    each=os.path.abspath(each)
    os.chdir(each)
    for image_path in os.listdir(each):
        image_path = os.path.abspath(image_path)
        print(image_path)
        image_data = gfile.FastGFile(image_path, 'rb').read()
        count += 1
os.chdir(image_folder)

我的环境是Windows7 x64,python 3.5.3和TensorFlow 1.0,我该如何解决这个问题?

顺便说一句,我必须使用中文目录&#39;名字使用我的照片标签。

0 个答案:

没有答案