Python - 目录



Python 中的目录

在 Python 中,目录(在操作系统中通常称为文件夹)是文件系统上用于存储文件和其他目录的位置。它们用作按层次结构对文件进行分组和管理的方法。

Python 提供了几个模块,主要是 os os.path,以及 shutil,允许您对目录执行各种操作。

这些操作包括创建新目录、浏览现有目录、列出目录内容、更改当前工作目录以及删除目录。

检查目录是否存在

在对目录执行操作之前,你通常需要检查它是否存在。我们可以使用 Python 中的 os.path.exists() 函数检查目录是否存在。

此函数接受单个参数,该参数是一个字符串,表示文件系统中的路径。此参数可以是 −

  • 相对路径 -相对于当前工作目录的路径。
  • 绝对路径 -从根目录开始的完整路径。

在此示例中,我们使用 os.path.exists() 函数检查给定的目录路径是否存在 -


import os

directory_path = "D:\\Test\\MyFolder\\"

if os.path.exists(directory_path):
	 	print(f"The directory '{directory_path}' exists.")
else:
	 	print(f"The directory '{directory_path}' does not exist.")

以下是上述代码的输出 -

The directory 'D:\\Test\\MyFolder\\' exists.

创建目录

您可以使用 os.makedirs() 函数在 Python 中创建新目录。如果中间目录不存在,则此函数将创建中间目录。

os.makedirs() 函数接受要创建的 “path” 作为参数。它(可选)接受一个 “mode” 参数,该参数指定为新创建的目录设置的权限。它是一个整数,以八进制格式表示(例如,0o755)。如果未指定,则根据系统的 umask 使用默认权限。

在以下示例中,我们将使用 os.makedirs() 函数创建新目录 -


import os

new_directory = "new_dir.txt"

try:
	 	os.makedirs(new_directory)
	 	print(f"Directory '{new_directory}' created successfully.")
except OSError as e:
	 	print(f"Error: Failed to create directory '{new_directory}'. {e}")

执行上述代码后,我们得到以下输出 -

Directory 'new_dir.txt' created successfully.

mkdir() 方法

您可以使用 os 模块的 mkdir() 方法在当前目录中创建目录。您需要为此方法提供一个参数,其中包含要创建的目录的名称。

以下是 Python 中 mkdir() 方法的语法 -


 os.mkdir("newdir")

以下是在当前目录中创建目录 test 的示例 -


import os

# Create a directory "test"
os.mkdir("test")
print ("Directory created successfully")

获得的结果如下所示 -

Directory created successfully

获取当前工作目录

要在 Python 中检索当前工作目录,可以使用 os.getcwd() 函数。此函数返回一个字符串,该字符串表示正在执行 Python 脚本的当前工作目录。

语法

以下是 Python 中 getcwd() 函数的基本语法 -


 os.getcwd()

以下是使用 getcwd() 函数显示当前工作目录的示例 -


import os

current_directory = os.getcwd()
print(f"Current working directory: {current_directory}")

我们得到的输出如下 -

Current working directory: /home/cg/root/667ba7570a5b7

列出文件和目录

您可以使用 os.listdir() 函数列出目录的内容。此函数返回指定目录路径内所有文件和目录的列表。

在下面的示例中,我们使用 listdir() 函数列出指定目录路径的内容 -


import os

directory_path = r"D:\MyFolder\Pictures"

try:
	 	contents = os.listdir(directory_path)
	 	print(f"Contents of '{directory_path}':")
	 	for item in contents:
	 	 	 print(item)
except OSError as e:
	 	print(f"Error: Failed to list contents of directory '{directory_path}'. {e}")

上述代码的输出如下所示 -

Contents of 'D:\MyFolder\Pictures':
Camera Roll
desktop.ini
Saved Pictures
Screenshots

更改当前工作目录

您可以使用 chdir() 方法更改当前目录。此方法采用一个参数,该参数是要设为当前目录的目录的名称。

语法

以下是 Python 中 chdir() 方法的语法 -


 os.chdir("newdir")

以下是使用 chdir() 方法将当前目录更改为 Desktop 的示例 -


import os

new_directory = r"D:\MyFolder\Pictures"

try:
	 	 os.chdir(new_directory)
	 	 print(f"Current working directory changed to '{new_directory}'.")
except OSError as e:
	 	 print(f"Error: Failed to change working directory to '{new_directory}'. {e}")

我们得到的输出如下所示 -

Current working directory changed to 'D:\MyFolder\Pictures'.

删除目录

您可以使用 os.rmdir() 方法删除 Python 中的空目录。如果目录包含文件或其他目录,则可以使用 shutil.rmtree() 方法递归删除它。

语法

以下是在 Python 中删除目录的基本语法 -


os.rmdir(directory_path)
# or
shutil.rmtree(directory_path)

在以下示例中,我们使用 os.rmdir() 方法删除一个空目录 -


import os
directory_path = r"D:\MyFolder\new_dir"

try:
	 	os.rmdir(directory_path)
	 	print(f"Directory '{directory_path}' successfully removed.")
except OSError as e:
	 	print(f"Error: Failed to remove directory '{directory_path}'. {e}")

它将产生以下输出 -

Directory 'D:\MyFolder\new_dir' successfully removed.