学科分类
目录
基础

目录操作

os模块中定义了一些用于处理文件夹操作的函数,例如创建目录、获取文件列表等函数;除os模块外,Python中的shutil模块也提供了一些文件夹操作。下面将对os模块和shutil模块中的一些文件夹操作函数进行介绍。

1.创建目录

os模块中的mkdir()函数用于创建目录,其语法格式如下:

os.mkdir(path, mode)

上述格式中,参数path表示要创建的目录,参数mode表示目录的数字权限,该参数在Windows系统下可忽略。

假设当前需要设计一个功能用于判断目录是否存在,如果目录不存在,执行创建目录操作,同时在该目录下创建一个“dir_demo.txt”文件并写入数据;如果目录存在,提示用户“目录已存在”。示例代码如下:

import os
dir_path = input('请输入目录:')
# 判断目录是否存在
yes_or_no = os.path.exists(dir_path)
if yes_or_no is False:
    os.mkdir(dir_path)
    new_file = open(os.getcwd() + '\\' + dir_path + "\\" +
                    "dir_demo.txt", 'w', encoding='utf-8')
    new_file.write("itcast")
    print("写入成功")
    new_file.close()
else:
    print("该目录已存在")

上述代码使用input()函数接收用户输入的目录,通过exists()函数判断目录是否存在,如果目录不存在,创建目录和文件dir_demo.txt,并使用write()方法向该文件中写入数据;如果目录存在,提示用户“该目录已存在”。

运行代码,输入一个不存在的目录,结果如下所示:

请输入目录:test_dir
写入成功

再次运行代码,检测“test_dir”目录是否存在,结果如下所示。

请输入文件夹名:test_dir
该文件夹已存在

2.删除目录

使用Python内置模块shutil中的rmtree()函数可以删除目录,其语法格式如下:

rmtree(path)   

上述格式中,参数path表示要删除的目录。

当前有一个名为“test_dir”的文件夹,使用rmtree()函数删除“test_dir”目录,示例代码如下:

import os
import shutil
print(os.path.exists("test_dir")) # 第1次判断目录是否存在
shutil.rmtree("test_dir")         # 执行删除操作
print(os.path.exists("test_dir")) # 第2次判断目录是否存在

上述代码首先使用exists()函数判断“test_dir”目录是否存在,如果存在返回True,否则返回False,然后使用rmtree()函数执行删除操作,最后使用exists()函数再次进行判断。

运行代码,结果如下所示:

True
False

对输出结果进行分析:第一次执行exists()函数返回的结果为True,表明文件夹存在;执行rmtree()函数后,再次执行exists()函数后返回结果为False,表明该文件夹删除成功。

3.获取目录的文件列表

os模块中的listdir()函数用于获取文件夹下文件或文件夹名的列表,该列表以字母顺序排序,其语法格式如下:

listdir(path)

上述格式中,参数path表示要获取的目录列表。

使用listdir()函数获取指定目录下文件列表,示例代码如下:

import os
current_path = r"D:\Python项目"
print(os.listdir(current_path)) 

运行代码,结果如下所示:

['learn_python.py', 'first_file.py']
点击此处
隐藏目录