鱼C论坛

 找回密码
 立即注册
查看: 1391|回复: 2

第三十讲 os.walk的问题

[复制链接]
发表于 2018-3-22 11:42:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. def search_files(key,detail):
  2.     all_files = os.walk(os.getcwd())
  3.     txt_files = []
  4.     for i in all_files:
  5.         for each_file in i[2]:
复制代码


在第四题里,有这么一段。我知道walk会生成一个有三个元素的元组。但是对这个i做了两次循环,所以walk生成的应该是很多个表示父子关系目录的元组吧?是不是walk以后,返回的是一系列元组,只要目录下有子目录
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-3-22 12:29:00 | 显示全部楼层
举个例子:
  1. >>> import os
  2. >>> list(os.walk('d://py'))
  3. [('d://py', ['.idea', '__pycache__'], ['000002.csv', '1 .py', '1.py', '1.txt', '12.csv', '12.txt', '123.txt', '12b.csv', '2.py', '2.txt', '2015-1.csv', '2015-1b.csv', '3', '3.py', '4.py', '5.py', '54.py', '6.py', '64.py', '7.py', '8.py', '932569c37344c86b6fdfb1617f43589c(1).py', 'a.py', 'a.txt', 'aa.txt', 'alert.pyw', 'asd.py', 'b.py', 'car.py', 'cat.jpg', 'cat_500_600.jpg', 'data.pkl', 'decodeMorse.py', 'dict.txt', 'dig_pow.py', 'dirReduc.py', 'drop.py', 'dropdata.py', 'eatfish.py', 'euler10.py', 'euler10b.py', 'euler10c.py', 'euler10d.py', 'euler11.py', 'euler12.py', 'euler13.py', 'euler14.py', 'euler15.py', 'euler16.py', 'euler17.py', 'euler2.py', 'euler21.py', 'euler22.py', 'euler24.py', 'euler25.py', 'euler26.py', 'euler27.py', 'euler28.py', 'euler29.py', 'euler3.py', 'euler30.py', 'euler30a.py', 'euler30b.py', 'euler30c.py', 'euler31a.py', 'euler32.py', 'euler33.py', 'euler35.py', 'euler4.py', 'euler42.py', 'euler45.py', 'euler46.py', 'euler47.py', 'euler5.py', 'euler55.py', 'euler56.py', 'euler6.py', 'euler7.py', 'euler8.py', 'euler9.py', 'faf.py', 'file_boy_name', 'file_girl_name', 'gre.txt', 'HPPO A反入口.py', 'HPPO时间格式化.py', 'icon.ico', 'in.txt', 'int_to_negabinary.py', 'jie.txt', 'jiecheng.txt', 'kooka_counter.py', 'lemmas - 副本.txt', 'lemmas.txt', 'lemmas1.txt', 'main.py', 'main1.py', 'makePalindrome.py', 'my.mp3', 'n.txt', 'names.txt', 'new1.py', 'num.txt', 'order_weight.py', 'out.txt', 'output.txt', 'p042_words.txt', 'p059_cipher.txt', 'p067_triangle.txt', 'q.txt', 'ranking.txt', 'record (1).txt', 'record.txt', 'run.py', 'spreadsheet.py', 'string1 (1).zip', 'string1.txt', 'string2.txt', 'string2.zip', 't.py', 't.txt', 't1.txt', 't2.txt', 'test.py', 'test.txt', 'test2.py', 'test2.py.bak', 'test3.py', 'test83.py', 'text.txt', 'text.txt.py', 'User ID.rar', 'User ID.txt', 'User ID1.txt', 'w', 'x.txt', '下注.py', '作业26.py', '工作簿1.csv', '工作簿2.csv', '工作簿3.csv', '帐号密码.pkl']), ('d://py\\.idea', [], ['.name', 'encodings.xml', 'misc.xml', 'modules.xml', 'py.iml', 'vcs.xml', 'workspace.xml']), ('d://py\\__pycache__', [], ['a.cpython-35.pyc', 'b.cpython-35.pyc', 'car.cpython-35.pyc', 'drop.cpython-36.pyc', 'dropdata.cpython-36.pyc', 'euler3.cpython-35.pyc', 'run.cpython-35.pyc'])]
复制代码

发现是一个生成器,把它转成列表,可以看到,里面有多个元组,每个元组是一个子目录下的内容。每个元组有当前目录,下属子目录列表和所有文件列表组成。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-22 12:51:35 | 显示全部楼层
冬雪雪冬 发表于 2018-3-22 12:29
举个例子:

发现是一个生成器,把它转成列表,可以看到,里面有多个元组,每个元组是一个子目录下的内容 ...

哦哦,其实返回的不是元组,而是列表,只不过列表的每个元素都是一个三元组。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-12-28 18:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表