python 遍历文件夹,python 遍历所有文件夹和子文件夹

  python 遍历文件夹,python 遍历所有文件夹和子文件夹

  在Python中,我们一般使用os模块来操作文件夹或文件。os是Python的内置模块,使用时可以直接导入:

  当文件夹中只有文件时导入listdir()当目标文件夹中只有文件时,我们可以只使用os模块的listdir()方法:该方法可以返回目标路径下的文件和文件夹的名字列表,参数就是目标路径。

  荔枝:

  文件结构如下:

  e:\ test 2-file 1 . txt-file 2 . txt-file 3 . xlsxdef get files():filenames=OS . listdir(r e:\ test )print(file

  当文件中既有文件又有文件夹时——-OS . walk()当目标文件中既有文件又有文件夹时,我们只能通过使用listdir()方法获取第一级子文件或文件夹,而无法获取子文件夹中的内容。

  荔枝:

  文件结构如下:

  e:\ Test-Directory 1-Directory 11-File 111 . txt--File 21 . vsdx-File 1 . txt-File 2 . txt def get files():filenames=OS . listdir(r e:\ Test 2 )print(filenames)结果如图所示:仅显示

  这时候就需要使用os.walk()方法:传入目标路径即可。这个方法可以递归找出目的列表路径下的所有文件,不管隐藏多深~

  def get_files(): for filepath,dirnames,filename in OS . walk(r e:\ test2 ):for filename in filenames:print(filename)

  os.walk()方法可以在我们的代码中生成三元组,即文件路径、目录名和文件名。我们可以把它们分别打印出来看看:

  其中,文件路径是目标路径下所有文件的路径:

  其中,目录名是我们的目标路径的所有目录名:

  其中文件名是每个路径下的文件名列表:

  扩展—获取目标路径下所有文件的绝对路径。如果你足够细心,你会发现我们的filepath和文件名打印的结果图是一一对应的:file1.txt和file2.txt的路径是E:\ test 2;文件11.txt和12.txt的路径是E:\ test 2 \ directory 1;诸如此类。那么,当我们把这两个返回值放在一起的时候,不就是每个文件的绝对路径吗?

  Get _ files (): for filepath,dirnames,filenames in OS . walk(r e:\ test2 ):for filename in filenames:print(os.path.join(file path,filename))我们遍历目标路径下的每个文件,并使用OS . path . join()方法来

  提示:os.path.join()方法是将目录和文件合并到一个路径中的方法。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: