摘要:在本教程中,您将学习如何使用 os
模块在 Python 中操作目录。
获取当前工作目录
当前工作目录是 Python 脚本正在运行的目录。要获取当前工作目录,您可以使用 os.getcwd()
,如下所示:
import os
cwd = os.getcwd()
print(cwd)
要更改当前工作目录,您可以使用函数 os.chdir()
:
import os
os.chdir('/script')
cwd = os.getcwd()
print(cwd)
连接和拆分路径
为了让程序在包括 Windows、Linux 和 macOS 在内的多个平台上运行,您需要使用与平台无关的文件和目录路径。
Python 为您提供了一个子模块 os.path
,其中包含几个有用的函数和常量,用于连接和拆分路径。
join()
函数将路径组件连接在一起,并返回带有相应路径分隔符的路径。例如,它在 Windows 上使用反斜杠 (\
),在 macOS 或 Linux 上使用正斜杠 (/
)。
split()
函数将路径拆分为组件,而不包含路径分隔符。以下是使用 join()
和 split()
函数的示例:
import os
fp = os.path.join('temp', 'python')
print(fp) # temp\python (on Windows)
pc = os.path.split(fp)
print(pc) # ('temp', 'python')
测试路径是否为目录
要检查路径是否存在且为目录,您可以使用 os.path.exists()
和 os.path.isdir()
函数。例如:
import os
dir = os.path.join("C:\\", "temp")
print(dir)
if os.path.exists(dir) or os.path.isdir(dir):
print(f'The {dir} is a directory')
创建一个目录
要创建一个新目录,您可以使用 os.mkdir()
函数。并且,在创建新目录之前,您应该始终先检查该目录是否已存在。
以下示例在 c:\temp
目录下创建一个名为 python
的新目录。
import os
dir = os.path.join("C:\\", "temp", "python")
if not os.path.exists(dir):
os.mkdir(dir)
重命名目录
要重命名目录,您可以使用 os.rename()
函数:
import os
oldpath = os.path.join("C:\\", "temp", "python")
newpath = os.path.join("C:\\", "temp", "python3")
if os.path.exists(oldpath) and not os.path.exists(newpath):
os.rename(oldpath, newpath)
print("'{0}' was renamed to '{1}'".format(oldpath, newpath))
删除目录
要删除目录,您可以按如下方式使用 os.rmdir()
函数:
import os
dir = os.path.join("C:\\","temp","python")
if os.path.exists(dir):
os.rmdir(dir)
print(dir + ' is removed.')
递归遍历目录
os.walk()
函数允许您递归地遍历目录os.walk()
函数返回根目录、子目录和文件。
以下示例展示了如何打印 c:\temp
目录中的所有文件和目录:
import os
path = "c:\\temp"
for root, dirs, files in os.walk(path):
print("{0} has {1} files".format(root, len(files)))
总结
使用
os.getcwd()
函数获取当前工作目录。使用
os.chdir()
函数将当前工作目录更改为新目录。使用
os.mkdir()
函数创建新目录。使用
os.rename()
函数重命名目录。使用
os.rmdir()
函数删除目录。使用
os.walk()
函数列出目录的内容。