在Python中寻找类似Java的文件遍历函数

jjn*_*guy 10 python java file-traversal

在Java中,您可以执行File.listFiles()并接收目录中的所有文件.然后,您可以轻松地通过目录树进行递归.

在Python中有类似的方法吗?

dme*_*ter 25

就在这里.Python的方式更好.

有三种可能性:

1)像File.listFiles():

Python具有os.listdir(path)功能.它的工作方式与Java方法类似.

2)使用glob进行路径名模式扩展:

模块glob包含使用Unix shell模式在文件系统上列出文件的函数,例如

files = glob.glob('/usr/joe/*.gif')

import os
from os.path import join
for root, dirs, files in os.walk('/usr'):
   print "Current directory", root
   print "Sub directories", dirs
   print "Files", files
您甚至可以动态删除"dirs"中的目录以避免走到该目录:如果dirs中的"joe":dirs.remove("joe")以避免进入名为"joe"的目录.

listdir和walk记录在这里.glob记录在这里.


Max*_*mus 5

作为一个长期的Pythonista,我不得不说std库中的路径/文件操作函数是低于标准的:它们不是面向对象的,它们反映了一个过时的,自我包装的OS系统函数 - 没有 - 思想哲学.我衷心地推荐'path'模块作为包装器(如果你必须知道的话,可以使用os,os.path,glob和tempfile):更好更多和OOPy:http://pypi.python.org/pypi/path.py /2.2

这是带路径模块的walk():

dir = path(os.environ['HOME'])
for f in dir.walk():
    if f.isfile() and f.endswith('~'):
        f.remove()
Run Code Online (Sandbox Code Playgroud)