今天看啥  ›  专栏  ›  隼与鱼

目录操作

隼与鱼  · 简书  ·  · 2019-04-06 08:22

文章预览

在开发中,随着文件数量的增多,就需要创建文件夹来管理文件,本节讲解有关文件目录的操作,该操作需要导入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目录及目录下内容被删除。

………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览