十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:国际域名空间、网站空间、营销软件、网站建设、祥云网站维护、网站推广。小编给大家分享一下解决python创建文件名乱码的方法,相信大部分人都还不怎么了解,因此分享这边文章给大家学习,希望大家阅读完这篇文章后大所收获,下面让我们一起去学习方法吧!
文件夹和文件的名字里面含有中文字符串时出现乱码的处理:
把该字符串编码转换为unicode或gbk编码的字符串来解决。代码第二行如有声明编码格式如utf-8,则代码里面出现中文字符串的地方就按照utf-8格式的字符串去处理;如没有编码声明,则windows系统默认为gbk编码,而linux默认为utf-8编码。
#!/usr/bin/env python # coding:utf-8 import os # 对变量s的值字符串 '中国' 按utf-8编码处理 s = '中国' # 创建的文件夹为乱码,乱码原因:代码编码为utf-8的中文字符串,但windows系统默认使用gbk编码,所以会乱码, 只有它们一致才不乱码 # os.mkdir(s) # 下面2种方法都能创建含有中文字符串的文件夹及文件 # 把s的值进行解码,由于其为utf-8编码,所以使用utf-8解码 # os.mkdir(s.decode('utf-8')) # windows系统的文件夹和文件的名字需要为unicode或gbk编码的字符串,才可以正常显示不乱码。 # os.mkdir(s.decode('utf-8').encode('gbk')) # f = open(s.decode('utf-8') + '.txt','w') f = open(s.decode('utf-8').encode('gbk') + '.txt','w') f.close()
此外,还发现一个现象,是否在使用unittest模块时,创建含有中文名字的文件夹时,是有区别的。
没有使用unittest模块时,可以直接创建含有中文的文件夹,也没出现乱码。代码如下:
#!/usr/bin/env python # coding:utf-8 import os import chardet s = raw_input('请输入要创建的文件夹名字:') # s的值为ascii字符串,即gbk字符串 print chardet.detect(s) # 发现不在unittest模块里面,可以不用编码解码处理,直接进行创建含有中文字符串的文件夹,结果也没发现乱码。而 且文件代码声明为utf-8,也没有进行转码,真是不可思议。 os.mkdir(s) os.chdir(s)
以上是解决python创建文件名乱码的方法的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联-成都网站建设公司行业资讯频道!