python 用os.walk()遍历目录时,中文文件名显示为乱码
#-*-coding:utf-8-*-importos,sys,stringexport=""forroot,dirs,filesinos.walk(r'E:\testp...
#-*- coding:utf-8 -*-
import os,sys,string
export=" "
for root,dirs,files in os.walk(r'E:\testpython'):
export+="%s;%s;%s\n" %(root,dirs,files)
print export
该目录中有个文件名为“新建文本文档 (2).sql “的文件,但该程序返回结果中,该文件名显示为乱码:\xd0\xc2\xbd\xa8\xce\xc4\xb1\xbe\xce\xc4\xb5\xb5 (2).sql,请问大家该怎么解决呢,我看了好多关于python中文编码问题的文章,但是还是无法解决。 展开
import os,sys,string
export=" "
for root,dirs,files in os.walk(r'E:\testpython'):
export+="%s;%s;%s\n" %(root,dirs,files)
print export
该目录中有个文件名为“新建文本文档 (2).sql “的文件,但该程序返回结果中,该文件名显示为乱码:\xd0\xc2\xbd\xa8\xce\xc4\xb1\xbe\xce\xc4\xb5\xb5 (2).sql,请问大家该怎么解决呢,我看了好多关于python中文编码问题的文章,但是还是无法解决。 展开
2个回答
展开全部
#coding=gb18030
import os,sys
def processunicode(value): #定义一个处理unicode类型字符串的函数
v1=''
for a in value:
if type(a)=='unicode':
v1=v1+str(a.encoe('gb18030'))
else:
v1=v1+str(a)
return v1
print processunicode(export) #把要打印的参数传给该函数,并打印出来
import os,sys
def processunicode(value): #定义一个处理unicode类型字符串的函数
v1=''
for a in value:
if type(a)=='unicode':
v1=v1+str(a.encoe('gb18030'))
else:
v1=v1+str(a)
return v1
print processunicode(export) #把要打印的参数传给该函数,并打印出来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
reload(sys)
sys.setdefaultencoding('utf-8')
更多追问追答
追问
这种方法没有用啊,我试了,还是原来那样
追答
你是只遍历文件 还是要遍历目录和文件啊
root dirs files 是list 直接转字符串肯定有问题
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询