python读取中文目录出现乱码

问题是这样的:用python写的程序,去读取一些目录和文件进行处理:比如说其中的中文目录名如下:示波器,曲线,卡哇伊小屋等等。然后比如示波器文件夹下面有下面文件:0.ht... 问题是这样的:用python写的程序,去读取一些目录和文件进行处理:比如说其中的中文目录名如下:
示波器,曲线,卡哇伊小屋等等。然后比如示波器文件夹下面有下面文件:0.htm,0.png,示波器.mp4
我写的目录和文件访问程序如下:
#根据绝对路径获取目录下面所有的文件的绝对路径,文本信息全部用txt文件,图片信息全部用png文件,视频信息
def getFiles_fromAbsPath(inputDir):
curPath = os.getcwd()
# 靠必须要拆分成多个路径,否则不能通过
os.chdir(inputDir)
#主要是为了获取sequence.txt文件(如果问题是这样的:用python写的程序,去读取一些目录和文件进行处理:比如说其中的中文目录名如下:
示波器,曲线,卡哇伊小屋等等。然后比如示波器文件夹下面有下面文件:0.htm,0.png,示波器.mp4
我写的目录和文件访问程序如下:
#根据绝对路径获取目录下面所有的文件的绝对路径,文本信息全部用txt文件,图片信息全部用png文件,视频信息
def getFiles_fromAbsPath(inputDir):
curPath = os.getcwd()
# 靠必须要拆分成多个路径,否则不能通过
os.chdir(inputDir)
#htm只需要返回0.htm进行处理
htmInputDirs = [x for x in os.listdir('.') if os.path.isfile(x) and x.endswith("0.htm") ]
for path in htmInputDirs:
#realHtmInputDirs.append(os.path.abspath(path))
realHtmInputDirs.append(os.path.join(inputDir , path))
for path in videoInputDirs:
realVideoInputDirs.append(os.path.abspath(path))
os.chdir(curPath)
return sequenceFileName,realPictureInputDirs,realHtmInputDirs[0] , videoFileName

但是用0.htm得到的绝对路径去读取该文件的的时候
fr = open(sFileName, "r"),这个sFileName是读取的0,htm的绝对路径,但是发生错误,看了调试信息:
这个时候文件的路径变成了:
'E:\MyProject\SVN_Project\Drawingboard_local\model\mydata\input\production\һ�ɳ���0.htm'
中文的路径:"示波器"没了
正确的路径是:
'E:\MyProject\SVN_Project\Drawingboard_local\model\mydata\input\production\示波器\0.htm'
而且乱码导致了:"示波器"和它后面的"\"都在一起了,所以读0.htm文件立刻程序崩溃。
我在python文件中加了:
- coding: utf-8 -
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
还是没有用
朋友们,能指导一下:python如何读取中文目录而不乱码吗,十分感谢
展开
 我来答
黑板客
2015-04-21 · TA获得超过469个赞
知道小有建树答主
回答量:193
采纳率:100%
帮助的人:192万
展开全部
先对路径进行unicode处理,然后再打开。举例:

inpath = 'E:\MyProject\SVN_Project\Drawingboard_local\model\mydata\input\production\示波器\0.htm'
uipath = unicode(inpath, "utf8")
然后用"uipath"经过编码后的路径去open()即可:
fin = open(uipath)
iS谁在看YoU
推荐于2017-06-17 · TA获得超过367个赞
知道小有建树答主
回答量:253
采纳率:90%
帮助的人:187万
展开全部
import os
import os.path as path
rootdir = path.abspath('.')  # 获取代码文件的绝对路径

# os.walk() 返回三个参数1.父目录 2.所有文件夹名字(不含路径) 3.所有文件名字
for parent, dirnames, filenames in os.walk(rootdir):
    # 输出文件夹信息
    print("parent is %^s" % parent)
    for dirname in dirnames:
        print("dirname is %s" % dirname)
    # 输出文件信息
    for filename in filenames:
        print(filename)
        full_filename = os.path.join(parent, filename)
        # 输出文件路径信息
        print("the full name of the file is: %s" % full_filename)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
183525594
2017-09-21 · TA获得超过2922个赞
知道大有可为答主
回答量:3664
采纳率:58%
帮助的人:2063万
展开全部
Windows 下文件路径的中文编码是 GB2312/CP396,而 Python 设置编码为 UTF-8 ...
所以应当对每一个文件路径做编码转换 很简单 就是先按照 GB2312 decode 然后再按照 UTF-8 encode..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
太平洋科技
优质机构答主

2020-12-26 · 百度认证:广东太平洋互联网信息服务有限公司官方账号,优质数码...
太平洋科技
太平洋电脑网通过分析、评测生活及工作中各类消费品,让消费者客观了解产品性能及安全状况,帮助用户做出理性购买选择。同时科普各领域产品知识,解答用户选购及使用中所遇问题。
向TA提问
展开全部

解压文件出现中文乱码怎么办解决办法

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
min365123
2017-09-18
知道答主
回答量:3
采纳率:0%
帮助的人:3633
展开全部
str = unicode(str , "GB2312")
用这个就可以解决乱码问题了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式