python遍历⽂件夹下的所有⽂件
引⼊
在Python中我们⼀般使⽤os模块来操作⽂件夹或⽂件,os为Python的内置模块,使⽤时直接导⼊即可:
import os
当⽂件夹内只有⽂件时–listdir()
当⽬标⽂件夹中只有⽂件时,我们使⽤os模块的listdir()⽅法即可:该⽅法可以返回⽬标路径下的⽂件和⽂件夹的名字列表,参数就是⽬标路径。
荔枝:
⽂件结构如下:python怎么读文件夹下的文件夹
E:\test2
--------⽂件1.txt
--------⽂件2.txt
--------⽂件3.xlsx
def getfiles():
filenames=os.listdir(r'E:\test')
print(filenames)
结果图如下:
当⽂件中既有⽂件⼜有⽂件夹时–os.walk()
当⽬标⽂件中既有⽂件⼜有⽂件夹时,我们使⽤listdir()⽅法就只能获得第⼀层⼦⽂件或⽂件夹了,⽽⼦⽂件夹中的内容便获取不到了。
荔枝:
⽂件结构如下:
E:\test2
-------⽬录1
--------------⽬录11
--------------------⽂件
--------------------⽂件
--------------⽂件11.txt
--------------⽂件12.txt
-------⽬录2
--------------⽂件21.vsdx
-------⽂件1.txt
-------⽂件2.txt
def getfiles():
filenames=os.listdir(r'E:\test2')
print(filenames)
结果如图:只显⽰出第⼀层⼦⽂件和⽂件夹
这时候我们需要⽤到os.walk()⽅法:传⼊⽬标路径即可。该⽅法可以递归的出⽬表路径下的所有⽂件,⽆论他藏的有多深~
def get_files():
for filepath,dirnames,filenames in os.walk(r'E:\test2'):
for filename in filenames:
print(filename)
os.walk()⽅法可以⽣成三元组,也就是我们代码中的filepath,dirnames,filenames,我们将他们分别打印出来可以看到:
其中filepath就是⽬标路径下所有⽂件的路径:
其中dirnames是我们⽬标路径的所有⽬录名称:
其中filenames则是各个路径下的⽂件名称列表:
扩充—获得⽬标路径下的所有⽂件的绝对路径
如果你⾜够细⼼的话,就会发现我们的filepath和filenames打印的结果图是⼀⼀对应的关系:⽂件1.txt
和⽂件2.txt的路径就是E:\test2;⽂件11.txt和⽂件12.txt的路径就是E:\test2\⽬录1;以此类推。那么我们把这两个返回值拼在⼀起,不就是各个⽂件的绝对路径了么?
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()⽅法将⽂件路径和⽂件名拼接在⼀起,就是各个⽂件的绝对路径了:
⼩提⽰:os.path.join()⽅法就是将⽬录和⽂件合成⼀个路径的⽅法。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。