目录:
当前工作目录 绝对路径与相对路径 使用Python处理路径 文件存在性检查及类型判断
当前工作目录
首先,我们需要了解“当前工作目录(Current Working Directory, CWD)”的概念。每个程序运行时都有一个默认的工作目录,所有未明确指定完整路径的操作都将在这个目录下执行。我们可以通过Python的os
模块来获取或修改当前工作目录。
import os # 导入os模块以使用系统相关的功能
# 获取当前工作目录
current_directory = os.getcwd()
print("当前工作目录是:", current_directory)
# 假设我们要改变当前工作目录到C盘下的某个文件夹
new_working_directory = 'C:\\Users\\山海摸鱼人\\Documents'
try:
os.chdir(new_working_directory)
print("工作目录已更改至:", new_working_directory)
except FileNotFoundError:
print(f"无法找到路径: {new_working_directory}")
上面代码展示了如何查看当前工作目录以及尝试切换到新的目录。如果新目录不存在,程序会捕捉到FileNotFoundError
异常并给出提示信息。
绝对路径与相对路径
接下来,让我们看看什么是绝对路径和相对路径。
绝对路径:是从根目录开始的完整路径。例如,在Windows上可能是 C:\Users\山海摸鱼人\Documents\example.txt
。相对路径:则是相对于当前工作目录的位置。比如 .\example.txt
代表当前目录下的example.txt
文件,而..\another_folder\example.txt
则表示上级目录中的another_folder
文件夹内的example.txt
文件。
当前目录与父目录
./
代表当前工作目录。../
代表当前工作目录的上一级(父)目录。
示例说明
假设你的电脑上有如下结构:
C:.
└── Users
└── 山海摸鱼人
├── Documents
│ └── example.txt
└── Downloads
└── another_example.txt
C:\Users\山海摸鱼人\Documents\example.txt
是一个绝对路径。
如果当前工作目录是C:\Users\山海摸鱼人\Downloads
:
..\Documents\example.txt
就是一个相对路径,它指向了同一用户的文档文件夹里的example.txt
。.\another_example.txt
就是指C:\Users\山海摸鱼人\Downloads\another_example.txt
。
使用Python处理路径
Python提供了一个强大的os.path
子模块来帮助我们更方便地处理文件路径问题。下面是一些常用的方法及其用法示例:
1、转换为绝对路径 - os.path.abspath(path)
2、检查是否为绝对路径 - os.path.isabs(path)
3、计算相对路径 - os.path.relpath(path, start)
4、获取路径的基本名 - os.path.basename(path)
5、获取路径的目录名 - os.path.dirname(path)
# 定义几个路径供演示
relative_path = '.\\example.txt' # 相对于当前目录
absolute_path = 'C:\\Users\\山海摸鱼人\\Documents\\example.txt'
# 将相对路径转为绝对路径
absolute_version = os.path.abspath(relative_path)
print("相对路径转绝对路径:", absolute_version)
# 检查给定路径是否为绝对路径
print("检查是否为绝对路径:", os.path.isabs(absolute_path))
# 计算从C盘根目录到目标文件的相对路径
relative_from_cdrive = os.path.relpath(absolute_path, 'C:\\')
print("从C盘根目录到目标文件的相对路径:", relative_from_cdrive)
# 分离出文件名部分
file_name = os.path.basename(absolute_path)
print("文件名:", file_name)
# 分离出目录部分
directory = os.path.dirname(absolute_path)
print("所在目录:", directory)
这段代码演示了如何利用os.path
的各种方法来操作文件路径。你可以根据自己的需要调整这些路径值。
文件存在性检查及类型判断
最后,为了安全起见,在对文件进行读写之前,通常我们会先验证文件是否存在,以及确定它是文件还是目录。
test_file = 'C:\\Users\\山海摸鱼人\\Documents\\example.txt'
test_dir = 'C:\\Users\\山海摸鱼人\\Documents'
# 检查文件或目录是否存在
exists = os.path.exists(test_file)
print(f"{test_file} 存在吗? {'是' if exists else '否'}")
# 判断是否为文件
is_file = os.path.isfile(test_file)
print(f"{test_file} 是文件吗? {'是' if is_file else '否'}")
# 判断是否为目录
is_dir = os.path.isdir(test_dir)
print(f"{test_dir} 是目录吗? {'是' if is_dir else '否'}")
通过以上步骤,你应该掌握了基本的路径管理和文件检查技巧。