目录操作
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']