当前位置: 首页 > 图灵资讯 > 行业资讯> 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平台,欢迎关注!

相关文章

python3兼容python2吗

python3兼容python2吗

2025-05-09
python3 whl怎么安装

python3 whl怎么安装

2025-05-09
python 字典怎么提取value

python 字典怎么提取value

2025-05-09
python 怎样计算字符串的长度

python 怎样计算字符串的长度

2025-05-09
python 怎么样反向输出字符串

python 怎么样反向输出字符串

2025-05-09
python 怎么判断字符串开头

python 怎么判断字符串开头

2025-05-09