Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在windows下用python正确读取日文文件名_Python_Encoding_Character Encoding - Fatal编程技术网

如何在windows下用python正确读取日文文件名

如何在windows下用python正确读取日文文件名,python,encoding,character-encoding,Python,Encoding,Character Encoding,如果文件名是日文,则打印到控制台将不正确(如.csv、?abc.csv) 如果文件名为日语, IOError:没有这样的文件或目录:\xe4\xb8\xbcABC.csv所有问题都解决了,谢谢 1) 如果您想通过os.listdir正确获取非英语(如日语、中文)的文件名(非???.csv) 您可以在路径字符串之前添加u 2) 如果要打开文件,可以使用file.decode('UTF-8') 关于:python2库在unicode支持方面非常糟糕,有些库具有向后兼容的“解决方法”,但有些库(如子

如果文件名是日文,则打印到控制台将不正确(如.csv、?abc.csv)

如果文件名为日语,
IOError:没有这样的文件或目录:\xe4\xb8\xbcABC.csv

所有问题都解决了,谢谢

1) 如果您想通过os.listdir正确获取非英语(如日语、中文)的文件名(非???.csv) 您可以在路径字符串之前添加u

2) 如果要打开文件,可以使用file.decode('UTF-8')


关于:python2库在unicode支持方面非常糟糕,有些库具有向后兼容的“解决方法”,但有些库(如子进程)没有。fileName=fileName.decode(“UTF-8”)(来自jmunsch的链接)仍然是IOError,将文件名更改为英文是OKTry fileName2=fileName.decode(“UTF-8”)open('fileName2')。readlines()它可以工作。但是文件名必须是日文字符串,我不能通过os.listdir()获得正确的文件名(变成?.csv),必须是硬编码文件名。这个问题可以总结为“如何通过os.listdir()获得正确的日文文件名”
import os

path="."
dirList=os.listdir(path)

for fileName in dirList:
    print fileName
open('XXX.csv').readlines()
#-*- coding: utf-8 -*-
import os

dirList=os.listdir(u"C:\\")

for file in dirList:
    print file
    file2 = file.decode('UTF-8')
    count = len(open('C:\\' + file2).readlines())
    print count