当前位置:首页 >> 脚本专栏

python os.listdir()乱码解决方案

计算机一般来说是需要定期的清理,系统的内存不能无限延伸,同时有一些不需要的文件也可以得以清除掉。有些人会使用os.remove来进行文件的清楚,从而导致一些错误的出现,可以说这是对于os.remove的用法还没有熟练掌握。下面我们就os.remove的详细用法及使用注意分别介绍。

1.语法

os.listdir(path)

2.参数

path – 目标目录的路径,即路径的字符串表示。

3.返回值

指定路径下,文件和文件夹名字的列表。

4.实例

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os, sys
# 打开文件
path = "/var/www/html/"
dirs = os.listdir( path )
# 输出所有文件和文件夹
for file in dirs:
  print(file)
如果目录下有中文目录,打印时遇到乱码解决方法:
cPath = os.getcwd()
# 如果目录名字为中文 需要转码处理
uPath = unicode(cPath,'utf-8')
for fileName in os.listdir(uPath) :
print(fileName)

python listdir() 中文路径 中文文件夹 乱码 解决方法

listdir(path)返回的结果的编码似乎和我们提供的 path 参数的编码有关:

import os
path = 'd:/test'
try:
  path = unicode(path, 'utf-8') # 经过编码处理
except:
  pass # python3 已经移除 unicode,而且默认是 utf8 编码,所以不用转
os.listdir(path)

这样,就算 path 下有中文的文件和文件夹,我们获得的结果是 utf-8 的编码

注意:在 python2 中需要经过编码处理,但是在python3中不需要,而且python 3 已经没有 unicode() 方法