python中文文件名乱码,python打开文件乱码
文件夹和文件的名称包含中文字符串时的乱码处理:
将字符串编码转换为unicode或gbk编码的字符串来解决这个问题。如果在代码的第二行声明了utf-8等编码格式,则汉字字符串在代码中出现的地方将按照utf-8字符串处理;如果没有编码声明,windows系统默认为gbk编码,linux默认为utf-8编码。
#!/usr/bin/envpython
#编码:utf-8
进口货
#变量S的值字符串“China”以utf-8编码。
S=中国
#创建的文件夹是乱码,乱码原因:代码是utf-8中文字符串,但是windows系统默认使用gbk编码,所以会乱码,
只有一致,才不会乱码。
#os.mkdir
#以下两种方法可以创建包含汉字的文件夹和文件。
#解码s的值,因为是utf-8编码,所以用utf-8解码。
#os.mkdir(s.decode(utf-8 ))
#windows系统中的文件夹和文件的名称需要是unicode或gbk编码的字符串,这样才能正常显示而不会出现乱码。
#os.mkdir(s.decode(utf-8 )。编码( gbk ))
#f=open(s.decode(utf-8 )。txt , w )
f=打开(s.decode(utf-8 )。编码( gbk )。txt , w )
F.close()另外发现一个现象。使用unittest模块时用中文名字创建文件夹是否有区别。
不使用unittest模块时,可以直接创建包含汉字的文件夹,没有乱码。代码如下:
#!/usr/bin/envpython
#编码:utf-8
进口货
importchardet
S=raw_input(请输入要创建的文件夹的名称:)
#s的值是ascii字符串,即gbk字符串。
printchardet.detect
#发现不在unittest模块中,可以直接创建一个包含中文字符串的文件夹,不需要编解码。因此,没有发现乱码。但是
而且文件编码声明为utf-8,而且没有经过转码,真的很不可思议。
os.mkdir
Os.chdir(s)流行于IT软件开发工作室,一个免费的在线学习python平台。欢迎关注!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。