使用python获取文件夹内文件的完整递归列表最简单的方法是什么?我知道os.walk()
,但似乎矫枉过正只是获取所有文件的未过滤列表。它真的是唯一的选择吗?获取“查找”的最简单方法。在python中?
回答
没有什么阻止你创建自己的功能:
import os
def listfiles(folder):
for root, folders, files in os.walk(folder):
for filename in folders + files:
yield os.path.join(root, filename)
您可以使用它像这样:
for filename in listfiles('/etc/'):
print filename
要么或isdir()
/isfile()
和listdir()
手动递归或者你可以使用subprocess.check_output()
并调用find .
。 Bascially os.walk()
是最高级别,稍低一级是基于listdir()
的半手动解决方案,并且如果您希望得到相同的输出find .
会因为某种原因给予您与subprocess
进行系统调用。
+1'os.walk()'使用find
程序本身的Python。 –
Blender
import os
path = "path/to/your/dir"
for (path, dirs, files) in os.walk(path):
print files
这是矫枉过正,还是我失去了一些东西?
你是绝对正确的。它看起来比实际上更困难。 –
os.walk()
没有任何手段矫枉过正。它可以生成你的文件和目录的列表在一个瞬间:
files = [os.path.join(dirpath, filename)
for (dirpath, dirs, files) in os.walk('.')
for filename in (dirs + files)]
您可以在时间和存储安全变成一个发电机,仅处理一个路径。
+1为最pythonic解决方案:) – kgr
您还可以通过使用sh
import sh
text_files = sh.find(".", "-iname", "*.txt")
- 1. Python:从字典中获取值列表的最简单方法?
- 2. 在python 2.3.4服务器上获取点的最简单方法
- 3. 获取GTK +在IDE中运行的最简单的方法
- 4. Python - 最快,最有效,最简单的获取辅音的方法
- 5. 在C#中获取OutOfMemoryException的最简单方法是什么?
- 6. 在iOS中获取Facebook好友信息的最简单方法
- 7. 在Python中获取正确时间的简单方法
- 8. Python - 从字典中获取有序键/值对的最简单方法?
- 9. 最简单的方法来获取查询对象的数组中的symfony
- 10. 获取字符串中数值列表的最简单方法
- 11. 获取请求中密钥值的最简单方法.POST
- 12. 在线获取GWT项目(使用RPC)的最简单方法?
- 13. 获取在线通知的最简单方法
- 14. 获取美国州名单的最简单方法
- 15. 获取非法指令异常的最简单方法
- 16. Java:获取字符串中最后一个单词的最简单方法
- 17. 最简单的方法来查找和删除重复?
- 18. 递归查找和替换的最简单方法?
- 19. 从编译包获得Python输出的最简单方法?
- 20. 在Python中找到2次差异的最简单方法是什么?
- 21. 在Python中绘制可分离3D点的最简单方法
- 22. 在Python中创建表格最简单的方法是什么?
- 23. 在Python中检测按键的最简单方法
- 24. 在python中合并两个txt文件的最简单方法
- 25. 从动态CRM获取数据的最简单的方法
- 26. 获取任意git对象的SHA的最简单方法?
- 27. 获取刚刚发布的记录ID的最简单方法
- 28. 通过我的浏览器获取URL的最简单方法?
- 29. 使用sqlite3在Python中获取blob的最简洁的方法是什么?
- 30. 获取BoundingBox的简单方法?
谢谢!我只是想确保这个功能还不是标准库的一部分。 –
我希望有一个存在。你总是可以编辑'os.py';) – Blender
好的解决方案!但'find .'也列出目录。该修复非常容易。 :) –