|
|
方法 1:使用 os 模块获取当前路径
import os
# 获取当前工作目录的绝对路径
current_path = os.getcwd()
print("当前工作目录:", current_path)
需要注意的是,os.getcwd()返回的是程序运行时的工作目录,而非脚本文件本身的存储目录。
import os
# 获取脚本文件的绝对路径
script_path = os.path.abspath(__file__)
print("脚本文件的绝对路径:", script_path)
# 获取脚本文件所在的目录
script_dir = os.path.dirname(os.path.abspath(__file__))
print("脚本文件所在目录:", script_dir)
os.path.abspath()将其转换为绝对路径,os.path.dirname()则提取路径中的目录部分,剔除文件名。
拼接路径
import os
import json
# 获取脚本所在目录
script_dir = os.path.dirname(os.path.abspath(__file__))
# 拼接配置文件路径
config_path = os.path.join(script_dir, "config.json")
方法 2:使用 pathlib 模块获取当前路径
from pathlib import Path
# 获取当前工作目录
current_dir = Path.cwd()
print("当前工作目录:", current_dir)
# 获取脚本文件自身的路径
script_path = Path(__file__).absolute()
print("脚本文件的绝对路径:", script_path)
# 获取脚本文件所在的目录
script_dir = Path(__file__).absolute().parent
print("脚本文件所在目录:", script_dir)
pathlib的优势在于支持路径拼接、判断路径类型等操作,无需拼接字符串
# 拼接路径:在脚本目录下创建data文件夹的路径
data_dir = Path(__file__).absolute().parent / "data"
print("数据文件夹路径:", data_dir)
# 判断路径是否存在
print("数据文件夹是否存在:", data_dir.exists())
不同操作系统的路径分隔符不同:Windows 使用反斜杠\,Linux/macOS 使用正斜杠/。直接拼接字符串(如script_dir + "\config.json")会导致跨平台运行出错,而 Python 的路径处理模块已内置兼容机制:
os.path.join()会根据系统自动选择分隔符;
pathlib的路径拼接(/运算符)也会适配系统分隔符。
因此,永远不要手动拼接路径字符串,务必使用os.path.join()或pathlib的拼接方式,保证程序的跨平台性。
|
|