使用Python标准库函数os.listdir()时的4个注意事项

好消息:

推荐图书:

《Python程序设计(第3版)》,(ISBN:978-7-302-55083-9),董付国,清华大学出版社,2020年6月第1次印刷,8月第4次印刷

京东购买链接:https://item.jd.com/12668739.html

天猫、当当均已上架,可以选择自己常用平台搜索“董付国 第3版”找到本书。

配套资源:教学大纲、电子教案、微课视频、PPT课件、例题源码、习题答案、考试系统。

=======================

标准库函数os.listdir()是在文件操作和文件遍历时常用的函数之一,用来获取指定文件夹中的所有文件和子文件夹名称组成的列表,完整语法为:

listdir(path=None)

os.listdir()函数在使用时应注意以下几个问题:

1)函数参数path的值可以是字符串或字节串,如果使用字符串指定文件夹则返回的列表中都是字符串形式的文件和子文件夹名字,如果使用字节串指定文件夹则返回的列表中都是字节串形式(UTF-8编码)的文件和子文件夹名字,如果不指定参数则默认返回当前文件夹中的文件和子文件夹名字。

2)如果指定的文件夹中包含子文件夹,listdir()函数返回的列表中不包含子文件夹中的内容。如果需要遍历子文件夹中的内容,可以使用深度优先或广度优先遍历目录树的方法,详见:

3)listdir(path)函数返回的列表中的路径都是相对于参数path的相对路径,如果参数path不是当前文件夹,那么listdir(path)返回的列表中的路径都无法直接访问。

4)listdir()函数返回的列表中的字符串是“乱序”的,大致来说,是按字符串转换为大写或小写之后的Unicode编码升序排序的,与我们习惯的按数字、拼音或字母顺序不一样。如果需要的话(例如按文件名编号升序排序后导入其他文件或系统),可以对列表中的字符串进行排序之后再使用。

假设Python安装目录中有test子文件夹,内容如下(随机生成文件名):

使用listdir()函数获取其中文件名以及不同排序规则显示效果演示如下:

温馨提示:

经验分享 程序员 微信小程序 职场和发展