如何在python中遍历目录?

2024-07-04 07:36:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个代码:

def traverse_dir(fd):      

    for dir_path,subpaths,files in os.walk(fd): 
        print dir_path,subpaths
        for file in files:
            print "file:%s"  %file

def traverse_func(arg,dirname,files):   

    print dirname
    for file in files:
            print "file:%s"  %file

os.path.walk(r".",traverse_func,())

我应该使用os.walk()还是{},为什么?在

或者还有其他更好的方法吗?在


Tags: pathinforosdefdirfilesfile
3条回答

这取决于您使用的Python版本。在python2中有os.path.walk()docs),但在python3中,它已被弃用并被os.walk()docs)取代。在

您声称在注释中使用的Python(x,y)seems to be based on Python 2。在

在手术室步行(dir)返回必须解包的元组。在

for a, b, c in os.walk(dir):
  print("{} contains the directories {} and the files {}".format(a, b, c))

其实很简单。在

对于Python 3.6+版本,您可以稍微简化一下:

^{pr2}$

^{}函数已弃用,在Python3中不再可用。因为这个原因,你应该更喜欢^{}。在

os.walk()也可以通过将followlinks参数设置为True来跟踪指向目录的符号链接。要对os.path.walk()执行同样的操作,您必须特别检查每个目录是否是一个sym链接,然后自己解析它。对于os.walk(),还有几个其他可能有用的选项,因此总体上,选择它而不是os.path.walk()。在

相关问题 更多 >

    热门问题