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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。