Python os.listdir() 中文路径乱码解决方案

阿澈
阿澈
发布时间:2026-10-14| 6人浏览过
原创

本文介绍 Python 中 os.listdir() 函数在处理包含中文文件或文件夹的路径时可能出现的乱码问题。重点解析 Python 2 与 Python 3 在编码处理上的差异,指出 Python 3 默认 UTF-8 编码无需额外转码,而 Python 2 需使用 unicode() 进行转换,并提供具体代码示例与注意事项。

计算机运行过程中,系统内存资源有限,定期清理不必要的文件是必要的维护操作。部分开发者在使用 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() 方法

到此这篇关于python os.listdir()乱码解决方案的文章就介绍到这了,更多相关python os.listdir()解决乱码内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。