d:\photo\a\ 下面有中文的目录,和中文文件名的txt文件,报错。

import os
import glob

dir=r"d:\\photo"
os.chdir(dir)

def txt(m):
b=os.path.abspath(m)
#a=b.decode('cp936').encode('gbk')

os.chdir(b)
list=glob.glob(u"*.txt")
for i in list:
return os.path.abspath(i)

for i in os.listdir(dir):  
print txt(i)
报错:
d:\photo\a\1.txt
Traceback (most recent call last):
File "F:\pydev\d.py", line 17, in <module>
print txt(i)
File "F:\pydev\d.py", line 11, in txt
os.chdir(b)
WindowsError: [Error 2] : 'd:\\photo\\a\\\xd0\xc2\xbd\xa8\xce\xc4\xbc\xfe\xbc\xd0'

慕桂英546537
浏览 112回答 2
2回答

呼啦一阵风

文件名或目录含中文时,需要encode('utf-8')另外,脚本前面加上# -*- coding:utf-8 -*-

喵喵时光机

经过我的本地测试,是没有问题的。不过你的程序有两个地方是有问题的。1】在得到list列表后,你使用的是return os.path.abspath(i)。这会让你只能得到你输出列表的第一个路径值。比如你输出列表为:这样你只能得到:2】你的程序不具有遍历photo下二级子目录并输出的能力。比如Photo文件夹下有个新建文件夹,新建文件夹下有一个新建文件夹,那么你只能输出第一个新建文件夹下的所有文件。(前提是将return改成print)。如下:相信看我的输出你就知道程序是没有问题的,是可以输出中文目录的,你可以尝试卸载重新安装下python试试。另外我的python版本是2.7。&nbsp;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python