在操作系统中通常被称为文件夹(folders)的目录(directories),是文件系统上用于存储文件和其他目录的位置。它们提供了一种层次化地组织和管理文件的方式。
Python 提供了多个模块,主要是 os
和 os.path
,还有 shutil
,这些模块允许你执行各种目录操作。
这些操作包括创建新目录、浏览现有的目录、列出目录内容、更改当前工作目录以及删除目录等。
检查目录是否存在
在对目录执行任何操作之前,通常需要检查该目录是否已经存在。我们可以使用 os.path.exists()
函数来检测一个目录是否存在。
这个函数接受一个参数,这个参数是一个字符串形式的文件系统路径。这个参数可以是:
示例
在这个例子中,我们使用 os.path.exists()
函数来检查给定的目录路径是否存在:
import os
directory_path = "D:\\Test\\MyFolder\\"
if os.path.exists(directory_path):
print(f"目录 '{directory_path}' 存在。")
else:
print(f"目录 '{directory_path}' 不存在。")
输出
执行以上代码后,会得到如下输出:
目录 'D:\\Test\\MyFolder\\' 存在。
创建目录
你可以使用 os.makedirs()
函数在 Python 中创建新目录。如果中间目录不存在,它也会创建中间的目录。
os.makedirs()
函数接受一个 "路径" 作为参数,这是你想创建的路径。可选地,它还接受一个 "mode" 参数,用于指定新创建目录的权限。这是一个以八进制形式表示的整数(例如,0o755)。如果不指定,则使用默认权限,这取决于系统的 umask 设置。
示例
在下面的例子中,我们使用 os.makedirs()
函数创建一个新的目录:
import os
new_directory = "new_dir.txt"
try:
os.makedirs(new_directory)
print(f"目录 '{new_directory}' 创建成功。")
except OSError as e:
print(f"错误:创建目录 '{new_directory}' 失败。{e}")
输出
执行以上代码后,会得到如下输出:
目录 'new_dir.txt' 创建成功。
mkdir()
方法
你可以使用 os
模块的 mkdir()
方法在当前目录创建目录。你需要向这个方法提供一个包含要创建的目录名称的参数。
下面是 mkdir()
方法在 Python 中的语法:
os.mkdir("newdir")
示例
下面是一个在当前目录创建一个名为 test
的目录的例子:
import os
os.mkdir("test")
print("目录创建成功")
结果
创建目录成功的输出如下:
目录创建成功
获取当前工作目录
为了在 Python 中获取当前的工作目录,你可以使用 os.getcwd()
函数。这个函数返回一个字符串,代表 Python 脚本正在执行的当前工作目录。
示例
下面是一个使用 getcwd()
函数显示当前工作目录的例子:
import os
current_directory = os.getcwd()
print(f"当前工作目录: {current_directory}")
输出
执行以上代码后,会得到如下输出:
当前工作目录: /home/cg/root/667ba7570a5b7
列出文件和目录
你可以使用 os.listdir()
函数来列出一个目录的内容。这个函数返回一个列表,包含了指定目录路径下的所有文件和目录。
示例
在下面的例子中,我们使用 listdir()
函数来列出指定目录路径的内容:
import os
directory_path = r"D:\MyFolder\Pictures"
try:
contents = os.listdir(directory_path)
print(f"目录 '{directory_path}' 的内容:")
for item in contents:
print(item)
except OSError as e:
print(f"错误:无法列出目录 '{directory_path}' 的内容。{e}")
输出
执行以上代码后,会得到如下输出:
目录 'D:\MyFolder\Pictures' 的内容:
Camera Roll
desktop.ini
Saved Pictures
Screenshots
更改当前工作目录
你可以使用 chdir()
方法来改变当前目录。这个方法接受一个参数,即你要设为当前目录的目录名称。
示例
下面是一个使用 chdir()
方法将当前目录改为桌面的例子:
import os
new_directory = r"D:\MyFolder\Pictures"
try:
os.chdir(new_directory)
print(f"当前工作目录改为 '{new_directory}'。")
except OSError as e:
print(f"错误:无法将工作目录改为 '{new_directory}'。{e}")
输出
执行以上代码后,会得到如下输出:
当前工作目录改为 'D:\MyFolder\Pictures'。
删除目录
你可以使用 os.rmdir()
方法来移除一个空目录。如果目录包含文件或其他目录,则可以使用 shutil.rmtree()
方法递归地删除它。
示例
在下面的例子中,我们使用 os.rmdir()
方法来移除一个空目录:
import os
directory_path = r"D:\MyFolder\new_dir"
try:
os.rmdir(directory_path)
print(f"目录 '{directory_path}' 成功移除。")
except OSError as e:
print(f"错误:移除目录 '{directory_path}' 失败。{e}")
输出
执行以上代码后,会得到如下输出:
目录 'D:\MyFolder\new_dir' 成功移除。