本篇将会介绍如何利用python来遍历某个目录下的文件,首先我们需要介绍os库,因为遍历是os库的一个功能。
1. os库简介
os是python标准库之一,其主要封装了与操作系统有关的函数,如切换目录,拼接路径等。
它的封装,消除了操作系统之间的区别,具有更好的可移植性。
比如,os.path为例:
In [29]: mypath = "E:\MyselfCode\ShellMad\Python"
In [30]: filename = "first.py"
In [31]: mypath + "\\"+filename
Out[31]: 'E:\\MyselfCode\\ShellMad\\Python\\first.py'
以上代码,可移植性不好,这是因为在windows环境下,"\\"
作为目录的分隔,在linux下是使用"/"
作为分隔。
In [1]: mypath = "E:\MyselfCode\ShellMad\Python"
In [2]: filename = "first.py"
In [4]: import os
In [5]: os.path.join(mypath,filename)
Out[5]: 'E:\\MyselfCode\\ShellMad\\Python\\first.py'
使用os.path.join
函数,就可以实现函数内部判断系统,来使用"\\"
或者"/"
2. os.walk函数介绍
os.walk(top, topdown=True, onerror=None, followlinks=False)
os.walk必须指定的参数,只有top一个,它代表需要遍历的根目录的路径。
它会返回要给迭代器对象( 可以用作for in循环 ),包括三样东西:
dirpath,dirnames,filenames
- dirpath:当前正在遍历的目录
- dirnames:当前目录下的所有子目录,作为一个list
- filenames:当前目录下的所有子文件,作为一个list
简单举例:
import os
mypath = "E:\MyselfCode\ShellMad\Python"
for dirpath,dirnames,filenames in os.walk(mypath):
print("=============")
print(dirpath)
print(dirnames)
print(filenames)
print("=============")
运行结果:可以看到E:\MyselfCode\ShellMad\Python
目录下的文件及目录,并且对子目录__pycache__
进行了遍历
=============
E:\MyselfCode\ShellMad\Python
['__pycache__']
['fistpy.py', 'mymodule.py']
=============
=============
E:\MyselfCode\ShellMad\Python\__pycache__
[]
['mymodule.cpython-38.pyc']
=============
如果结合endwith
使用,就可以用来判断遍历的文件类型是.pdf
或者其他类型的文件
3.学习视频地址:使用Python遍历文件