目录
目录是文件系统中的节点,用于组织和访问文件。在Python中,我们可以使用os和os.path模块进行目录相关的操作。
os模块提供了许多与操作系统交互的函数。以下是os模块中与目录相关的函数:
os.path.exists(path):检查指定路径是否存在。如果存在,返回True;否则返回False。
示例代码:
import os ?
??
path = "/path/to/directory" ?
if os.path.exists(path): ?
? ? print("Directory exists.") ?
else: ?
? ? print("Directory does not exist.")
os.path.isfile(path):检查指定路径是否为文件。如果是文件,返回True;否则返回False。
示例代码:
import os ?
??
path = "/path/to/file.txt" ?
if os.path.isfile(path): ?
? ? print("Path is a file.") ?
else: ?
? ? print("Path is not a file.")
os.path.isdir(path):检查指定路径是否为目录。如果是目录,返回True;否则返回False。
示例代码:
import os ?
??
path = "/path/to/directory" ?
if os.path.isdir(path): ?
? ? print("Path is a directory.") ?
else: ?
? ? print("Path is not a directory.")
os.listdir(path):返回指定路径下的所有文件和目录的列表。
示例代码:
import os ?
??
path = "/path/to/directory" ?
files = os.listdir(path) ?
print("Files in the directory:", files)
os.mkdir(path):创建新目录。如果目录已存在,则会引发FileExistsError异常。
os.makedirs(path):递归创建目录。如果目录已存在,则不会引发异常。
示例代码:
import os ?
??
path = "/path/to/new/directory" ?
os.makedirs(path, exist_ok=True) ?# 创建目录,如果目录已存在则不会引发异常
os.rmdir(path):删除目录。如果目录为空,则会引发FileNotFoundError异常。
os.removedirs(path):递归删除目录。如果目录非空,则会先删除目录下的文件和子目录。
示例代码:
import os ?
??
path = "/path/to/directory" ?
os.removedirs(path) ?# 递归删除目录及其下的文件和子目录
除了上述函数外,os模块还提供了其他与目录相关的功能,例如获取当前工作目录、改变当前工作目录等。
os.path模块提供了一些用于处理文件路径的函数,这些函数可以帮助我们更好地处理文件路径。以下是os.path模块中常用的函数:
os.path.join(path1, path2, ...):将多个路径组件连接成一个路径。
示例代码:
import os ?
??
path = os.path.join("/home", "user", "documents", "file.txt") ?
print(path) ?# 输出:/home/user/documents/file.txt
os.path.split(path):将路径分割成目录和文件名,并返回一个元组。
示例代码:
import os ?
??
dir_name, file_name = os.path.split("/home/user/documents/file.txt") ?
print("Directory:", dir_name) ?# 输出:Directory: /home/user/documents ?
print("File name:", file_name) ?# 输出:File name: file.txt
os.path.splitext(path):将路径分割成文件名和扩展名,并返回一个元组。
示例代码:
import os ?
??
base_name, ext = os.path.splitext("/home/user/documents/file.txt") ?
print("Base name:", base_name) ?# 输出:Base name: file ?
print("Extension:", ext) ?# 输出:Extension: .txt
os.path.dirname(path):返回指定路径的目录名。
示例代码:
import os ?
??
dir_name = os.path.dirname("/home/user/documents/file.txt") ?
print(dir_name) ?# 输出:/home/user/documents
os.path.basename(path):返回指定路径的文件名。
示例代码:
import os ?
??
file_name = os.path.basename("/home/user/documents/file.txt") ?
print(file_name) ?# 输出:file.txt
os.path.exists(path):检查指定路径是否存在。如果存在,返回True;否则返回False。
示例代码:
import os ?
??
path = "/path/to/directory" ?
if os.path.exists(path): ?
? ? print("Directory exists.") ?
else: ?
? ? print("Directory does not exist.")
os.path.isfile(path):检查指定路径是否为文件。如果是文件,返回True;否则返回False。
示例代码:
import os ?
??
path = "/path/to/file.txt" ?
if os.path.isfile(path): ?
? ? print("Path is a file.") ?
else: ?
? ? print("Path is not a file.")
os.path.isdir(path):检查指定路径是否为目录。如果是目录,返回True;否则返回False。
示例代码:
import os ?
??
path = "/path/to/directory" ?
if os.path.isdir(path): ?
? ? print("Path is a directory.") ?
else: ?
? ? print("Path is not a directory.")
os.path.normpath(path):规范化路径字符串,处理路径中的.、..等特殊符号。
示例代码:
import os ?
??
path = "/home/user/../documents/file.txt" ?
normalized_path = os.path.normpath(path) ?
print(normalized_path) ?# 输出:/home/documents/file.txt
os.path.abspath(path):返回指定路径的绝对路径。
示例代码:
import os ?
??
path = "/home/user/documents/file.txt" ?
absolute_path = os.path.abspath(path) ?
print(absolute_path) ?# 输出:/home/user/documents/file.txt
os.path.relpath(path, start=None):返回从start路径到目标路径的相对路径。如果start为None,则默认使用当前工作目录作为起始路径。
示例代码:
import os ?
??
target_path = "/home/user/documents/file.txt" ?
start_path = "/home/user" ?
relative_path = os.path.relpath(target_path, start_path) ?
print(relative_path) ?# 输出:documents/file.txt
除了上述函数外,os.path模块还提供了其他一些用于处理文件路径的函数,例如判断路径是否为根目录、获取路径中的驱动器名称等。这些函数可以帮助我们更好地处理文件路径。