前面的文章我们有讲过 python 对文件的读写操作,但同时文件一定是存在于某个目录下的,所以我们还需要知道 python 对目录的一些常见操作。
关于对目录的操作,都可以使用 os 这个内置的库来实现。
1、获取目录
os.getcwd() 获取当前程序的工作目录,注意并不是指当前程序所在的目录,这里一不小心就会掉坑里去,一会我会详细说明。
现在有两个目录:
E:\pyinstaller\pyinstaller-develop\py (dir.py 所在目录)
E:\pyinstaller\pyinstaller-develop\py\dir_2 (getpath.py 所在目录)
我们直接运行 getpath.py 结果为:
我们再运行 dir.py 结果又为:
从上面的代码中可以知道,os.getcwd() 仅仅只是获取当前最外层调用脚本的路径。如果有其他脚本调用当前脚本,那返回的就是其他脚本所在的目录了,这一点一定要弄明白,还不理解的话,就需要多看几遍,动手操作几遍试试。
2、检查目录
一般对文件的读写操作之前,需要确认其对应的目录是否存在,注意文件的写操作虽然可以自动创建不存在的文件,但那是仅仅限于在程序的当前目录下,对于一个非当前目录的文件进行写操作前还是需要判断其目录是否存在的。
3、创建目录
如果检测到目录不存在,我们就需要创建目录。
os.mkdir() 一次只能创建一级目录,也就是说只能一级一级的创建目录,不能一次创建多级目录,有一定的局限性,不建议使用。
os.makedirs() 可以一次性创建多级目录,刚好可以突破上面提到的局限性,推荐使用。
要注意的是如果要创建的目录已经存在了就会报错,所以在创建目录前务必先检测目录。
4、删除目录
os.rmdir() 删除指定空目录,如果目录非空则报错。
os.removedirs() 删除指定目录下所有空目录,即被删除的空目录的父级目录也是空目录的话也会被删除,依次类推,因此会删除所有的空目录。
shutil.rmtree 则会强制删除指定目录下的所有文件和目录,注意是强制删除,请务必慎用,使用前需要 import shutil 导入。
坚持微学习,
growing together.
领取专属 10元无门槛券
私享最新 技术干货