栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

os.walk以什么顺序进行迭代?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

os.walk以什么顺序进行迭代?

os.walk
用途
os.listdir
。这是的文档字符串
os.listdir

listdir(路径)-> list_of_strings

返回一个列表,其中包含目录中条目的名称。

path: path of directory to list

该列表按任意顺序排列 。它不包括特殊条目“。” 和“ ..”,即使它们存在于目录中。

(我的重点)。

但是,您可以

sort
用来确保所需的顺序。

for root, dirs, files in os.walk(path):   for dirname in sorted(dirs):        print(dirname)

(请注意,目录名是字符串而不是整数,因此将

sorted(dirs)
它们作为字符串排序-一次只需要这样做。

正如Alfe和Ciro Santilli指出的那样,如果您希望按排序顺序 递归 目录,则

dirs
就地 修改:

for root, dirs, files in os.walk(path):   dirs.sort()   for dirname in dirs:        print(os.path.join(root, dirname))

您可以自己对此进行测试:

import osos.chdir('/tmp/tmp')for dirname in '1 10 11 12 2 20 21 22 3 30 31 32'.split():     try:          os.makedirs(dirname)     except OSError: passfor root, dirs, files in os.walk('.'):   for dirname in sorted(dirs):        print(dirname)

版画

110111222021223303132

如果要按数字顺序列出它们,请使用:

for dirname in sorted(dirs, key=int):

要对字母数字字符串进行排序,请使用自然排序。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/651759.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号