Loading... # 当文件夹内只有文件时–listdir() 当目标文件夹中只有文件时,我们使用os模块的listdir()方法即可:该方法可以返回目标路径下的文件和文件夹的名字列表,参数就是目标路径。 文件结构如下: E:\test2 --------文件1.txt --------文件2.txt --------文件3.xlsx ```python def getfiles(): filenames=os.listdir(r'E:\test') print(filenames) ``` ![image.png](http://type.zimopy.com/usr/uploads/2023/03/943483088.png) # 当文件中既有文件又有文件夹时–os.walk() 当目标文件中既有文件又有文件夹时,我们使用listdir()方法就只能获得第一层子文件或文件夹了,而子文件夹中的内容便获取不到了。 荔枝: 文件结构如下: E:\test2 -------目录1 --------------目录11 --------------------文件111.txt --------------------文件112.txt --------------文件11.txt --------------文件12.txt -------目录2 --------------文件21.vsdx -------文件1.txt -------文件2.txt ```python def getfiles(): filenames=os.listdir(r'E:\test2') print(filenames) ``` ![image.png](http://type.zimopy.com/usr/uploads/2023/03/2267691510.png) # 这时候我们需要用到os.walk()方法: 传入目标路径即可。该方法可以递归的找出目表路径下的所有文件,无论他藏的有多深~ ```python def get_files(): for filepath,dirnames,filenames in os.walk(r'E:\test2'): for filename in filenames: print (filename) ``` ![7a0c4bc5fb27d13ada6554dc535f504a_201906011652483.png](http://type.zimopy.com/usr/uploads/2023/03/2946669497.png) # os.walk()方法可以生成三元组 也就是我们代码中的filepath,dirnames,filenames,我们将他们分别打印出来可以看到: ## filepath就是目标路径下所有文件的路径: ![344137ba5e84579b44d7d4f45301c8f7_20190601165953277.png](http://type.zimopy.com/usr/uploads/2023/03/680407877.png) ## dirnames是目标路径的所有目录名称: ![a36cf01c1fd69e037f8c48b024af711e_20190601171011733.png](http://type.zimopy.com/usr/uploads/2023/03/1517694868.png) ## filenames则是各个路径下的文件名称列表: ![ac6e23ad2cd06ccd44e9785d956272ea_20190601170416666.png](http://type.zimopy.com/usr/uploads/2023/03/188646621.png) # 扩充—获得目标路径下的所有文件的绝对路径 如果你足够细心的话,就会发现我们的filepath和filenames打印的结果图是一一对应的关系:文件1.txt和文件2.txt的路径就是E:\test2;文件11.txt和文件12.txt的路径就是E:\test2\目录1;以此类推。那么我们把这两个返回值拼在一起,不就是各个文件的绝对路径了么? ```python def get_files(): for filepath,dirnames,filenames in os.walk(r'E:\test2'): for filename in filenames: print(os.path.join(filepath,filename)) ``` 我们遍历目标路径下的各个文件,用os.path.join()方法将文件路径和文件名拼接在一起,就是各个文件的绝对路径了: ![d8acb8ef488f38ddac529668a362394c_20190601171441990.png](http://type.zimopy.com/usr/uploads/2023/03/451006820.png) # 小提示:os.path.join() 方法就是将目录和文件合成一个路径的方法。 最后修改:2023 年 03 月 01 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏