总结
1. os库
对于os模块来说,这是大家最熟悉的一个库,功能相对很齐全,主要像以下这些功能:
- os.getcwd():获取当前的工作路径;
- os.chdir() :改变当前工作目录到指定的路径;
- os.listdir(path):传入任意一个path路径,返回的是该路径下所有文件和目录组成的列表;
- os.mkdir():创建文件夹;
2. shutil库
shutil库,最主要的功能就是提供了对文件/文件夹的复制、移动和删除功能,主要如下:
- shutil.copy(src,dst):复制文件,src表示源文件,dst表示目标文件夹;
- shutil.copytree(src,dst):复制文件夹,src表示源文件夹,dst表示目标文件夹;
- shutil.move(src,dst):移动文件/文件夹,src表示源文件/文件夹,dst表示目标文件夹;
- shutil.rmtree(src):删除文件夹,src表示源文件夹。区别这里和os模块中remove() 、rmdir()的用法、remove()方法只能删除某个文件,mdir()只能删除某个空文件夹。但是shutil模块中的rmtree()可以递归彻底删除非空文件夹;
3. glob库
glob库,提供了更加便捷的用来查找符合特定规则的目录和文件的方法,主要它支持*、**、? 、[ ]这四个通配符。
- *:匹配0个或多个字符;
- **:匹配所有文件、目录、子目录和子目录里的文件(3.5版本新增);
- ?:匹配一个字符;
- []:匹配指定范围内的字符,如[0-9]匹配数字,[a-z]匹配小写字母;
4. pathlib库
pathlib库中有一些功能超级棒,其中我最喜欢下面这个功能:
- p.name:获取文件名;
- p.suffix:获取文件后缀;
详解
glob库中主要的3个函数
其实glob库很简单,只有3个主要函数供我们使用,它们分别是glob()、iglob()、escape()函数,因此学习起来特别容易。
- glob.glob():返回符合匹配条件的所有文件的路径;
- glob.iglob():返回一个迭代器对象,需要循环遍历获取每个元素,得到的也是符合匹配条件的所有文件的路径;
- glob.escape():escape可以忽略所有的特殊字符,就是星号、问号、中括号,用处不大;
- recursive=False:代表递归调用,与特殊通配符
“**”
一同使用,默认为False,False表示不递归调用,True表示递归调用;
import glob
#获取指定目录下的所有图片
print glob.glob(r"E:\Picture\*\*.jpg")
#获取上级目录的所有.py文件
print glob.glob(r'../*.py') #相对路径