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中文编码问题的文章,但是还是无法解决。
展开
 我来答
dbsync
2011-06-20
知道答主
回答量:14
采纳率:0%
帮助的人:21.1万
展开全部
#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) #把要打印的参数传给该函数,并打印出来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
macru
2011-06-17 · TA获得超过172个赞
知道小有建树答主
回答量:250
采纳率:0%
帮助的人:187万
展开全部
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
更多追问追答
追问
这种方法没有用啊,我试了,还是原来那样
追答
你是只遍历文件 还是要遍历目录和文件啊
root dirs files 是list 直接转字符串肯定有问题
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式