图片文件路径中包含中文,读取文件失败
Created by: 466821202
百度出来的的方法都测试了 不好使 单独这样写unicode(img_path, 'utf-8').encode('utf-8') 好使 但是paddle这样写就报错了 import os img_path = "/nfs/DDS/file/SYSBOOKDOC/2017/1/1/中文中文中文中文中文中文.jpg" os.access(unicode(img_path, 'utf-8').encode('utf-8'), os.F_OK) Out[3]: True 第一种 if os.access(img_path.decode('gbk'), os.F_OK): UnicodeEncodeError: 'ascii' codec can't encode characters in position 34-42: ordinal not in range(128) 第二种 File "reader.py", line 36, in reader if os.access(img_path.decode('utf-8'), os.F_OK): File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode byte 0xce in position 34: invalid continuation byte 第三种 File "reader.py", line 36, in reader if os.access(unicode(img_path , "utf8"), os.F_OK): File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode byte 0xce in position 34: invalid continuation byte 第四种 #!/usr/bin/env Python
coding=utf-8
第五种 这样写代码直接不执行了 import sys reload(sys) sys.setdefaultencoding("utf-8") str = "/nfs/DDS/file/SYSBOOKDOC/2017/1/1/七里河区秀川派出所兰州七里河蓝天幼儿园门口.jpg".decode('utf-8') print str 单独测试
"/nfs/DDS/file/SYSBOOKDOC/2017/1/1/七里河区秀川派出所兰州七里河蓝天幼儿园门口.jpg" #!/usr/bin/env Python
coding=utf-8
import os os.access("/nfs/DDS/file/SYSBOOKDOC/2017/1/1/七里河区秀川派出所兰州七里河蓝天幼儿园门口.jpg", os.F_OK) Out[1]: True In [4]:
img_path = "/nfs/DDS/file/SYSBOOKDOC/2017/1/1/七里河区秀川派出所兰州七里河蓝天幼儿园门口.jpg" os.access(img_path.decode('utf-8'), os.F_OK) img_path = "/nfs/DDS/file/SYSBOOKDOC/2017/1/1/七里河区秀川派出所兰州七里河蓝天幼儿园门口.jpg" os.access(img_path.decode('utf-8'), os.F_OK)
UnicodeEncodeErrorTraceback (most recent call last) in () 1 img_path = "/nfs/DDS/file/SYSBOOKDOC/2017/1/1/七里河区秀川派出所兰州七里河蓝天幼儿园门口.jpg" ----> 2 os.access(img_path.decode('utf-8'), os.F_OK)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 34-54: ordinal not in range(128)
In [5]:
img_path = "/nfs/DDS/file/SYSBOOKDOC/2017/1/1/七里河区秀川派出所兰州七里河蓝天幼儿园门口.jpg" os.access(img_path.decode('gbk'), os.F_OK) img_path = "/nfs/DDS/file/SYSBOOKDOC/2017/1/1/七里河区秀川派出所兰州七里河蓝天幼儿园门口.jpg" os.access(img_path.decode('gbk'), os.F_OK)
UnicodeDecodeErrorTraceback (most recent call last) in () 1 img_path = "/nfs/DDS/file/SYSBOOKDOC/2017/1/1/七里河区秀川派出所兰州七里河蓝天幼儿园门口.jpg" ----> 2 os.access(img_path.decode('gbk'), os.F_OK)
UnicodeDecodeError: 'gbk' codec can't decode bytes in position 48-49: illegal multibyte sequence