在开发中,随着文件数量的增多,就需要创建文件夹来管理文件,本节讲解有关文件目录的操作,该操作需要导入os模块。
创建目录
os模块的mkdir()函数可以创建目录,其语法格式如下:
os.mkdir(path)
参数path指定要创建的目录,如下所示。
1 import os # 导入os模块
2 os.mkdir('E:/study/随笔/sunyuyu')
程序运行结束后,在目录“E:/study/随笔/”创建出一个目录“sunyuyu”。此处需注意该函数只能创建一级目录,如果需要创建多级目录,则可以使用makedirs()函数,其语法格式如下:
os.makedirs(path1/path2…)
参数path1与path2形成多级目录,具体示例如下:
import os # 导入os模块
os.makedirs('E:/study/随笔/goodprogrammer/test')
程序运行结束后,目录结构为E:/study/随笔/goodprogrammer/test。
获取目录
os模块的getcwd()函数可以获取当前目录,其语法格式如下:
os.getcwd()
该函数的使用比较简单,如下所示。
1 import os # 导入os模块
2 res = os.getcwd()
3 print(res)
运行结果如下图所示。
从程序运行结果可看出,本程序的文件在E:\study\随笔\Python基础1目录中。
另外,os模块的listdir()函数可以获取指定目录中的内容,其语法格式如下:
os.listdir(path)
其中,参数path指定要获取内容目录的路径,如下所示。
1 import os # 导入os模块
2 res = os.listdir('E:/study/随笔')
3 print(res)
运行结果如下图所示。
从程序运行结果可看出,该函数返回一个列表,其中的元素为E:/study/随笔目录下所有文件名与目录名。
遍历目录
如果希望查看指定路径下全部子目录的所有目录和文件信息,就需要进行目录的遍历,os模块的walk()函数可以遍历目录树,其语法格式如下:
os.walk(树状结构文件夹名称)
该函数返回一个由3个元组类型的元素组成的列表,具体如下所示:
[(当前目录列表), (子目录列表), (文件列表)]
接下来演示使用walk()函数遍历目录,如下所示。
1 import os # 导入os模块
2 def traversals(path):
3 if not os.path.isdir(path):
4 print('错误:',path,'不是目录或不存在')
5 return
6 list_dirs = os.walk(path) # os.walk返回一个元组,包括3个元素
7 for root, dirs, files in list_dirs: # 遍历该元组的目录和文件信息
8 for d in dirs:
9 print(os.path.join(root, d)) # 获取完整路径
10 for f in files:
11 print(os.path.join(root, f)) # 获取文件绝对路径
12 traversals('E:\\study\\随笔')
程序运行结束后,输出E:/study/随笔目录下全部子目录的所有目录和文件信息。
删除目录
删除目录可以通过以下两个函数,具体如下所示:
os.rmdir(path) # 只能删除空目录
shutil.rmtree(path) # 空目录、有内容的目录都可以删除
接下来演示这两个函数的使用,如下所示。
1 import os, shutil # 导入os、shutil模块
2 os.rmdir('E:/study/随笔/sunyuyu')
3 shutil.rmtree('E:/study/随笔/goodprogrammer')
程序运行结束后,E:/study/随笔/sunyuyu空目录被删除,E:/study/随笔/goodprogrammer目录及目录下内容被删除。