当前位置: 首页 > 图灵资讯 > 行业资讯> python创建文件名乱码怎么解决

python创建文件名乱码怎么解决

来源:图灵python
时间: 2025-03-14 17:52:00

当文件夹和文件名称包含中文字符串时,会出现乱码处理:

将字符串代码转换为unicode或gbk代码的字符串。如果代码的第二行有声明,如utf-8,则按utf-8格式的字符串处理代码中的中文字符串;如果没有代码声明,windows系统默认为gbk代码,linux默认为utf-8代码。

#!/usr/bin/envpython
#coding:utf-8
importos
#变量s值字符串'中国'按utf-8编码处理
s='中国'
#代码编码为utf-8中文字符串,但windows系统默认使用gbk编码,因此会乱码,
只有它们是一致的,才不会乱码
#os.mkdir(s)
#以下两种方法都可以创建包含中文字符串的文件夹和文件
#解码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/envpython
#coding:utf-8
importos
importchardet
s=raw_input('请输入要创建的文件夹名称:')
#s值为ascii字符串,即gbk字符串
printchardet.detect(s)
#发现不在unittest模块中,无需编码解码即可直接创建含有中文字符串的文件夹,但未发现乱码。而且
而且文件代码声明是utf-8,没有转码,真的不可思议。
os.mkdir(s)
os.chdir(s)

python学习网,免费在线学习python平台,欢迎关注!

上一篇:

python怎么将字母大写

下一篇:

返回列表