python中路径操作简介

一、./的基础含义

  1. 当前目录
    ./表示当前工作目录(Current Working Directory, CWD),即Python脚本运行时所在的目录。例如:

    open('./data.txt', 'r')  # 打开当前目录下的data.txt文件
    • 作用:避免直接写文件名可能引发的路径歧义

      注意:若当前目录中存在子目录sub./sub/file.txt表示子目录下的文件

  2. 与其他符号的对比

    • ../:表示当前目录的上级目录,例如../config/settings.ini会定位到父目录下的配置文件
    • /(根目录):在绝对路径中使用,如Linux的/home/user/file.txt或Windows的C:\Users\file.txt

二、扩展使用场景

1. 结合os模块操作路径
  • 路径拼接:使用os.path.join()自动处理分隔符:
    import os
    config_path = os.path.join('.', 'config', 'settings.ini')  # 生成'./config/settings.ini'
  • 路径检查
    if os.path.exists('./logs'):  # 检查当前目录下是否存在logs目录
        print("日志目录存在")
2. 使用pathlib库(推荐)
from pathlib import Path
current_dir = Path('.')  # 当前目录对象
config_file = current_dir / 'config' / 'settings.ini'  # 路径拼接
print(config_file.resolve())  # 解析为绝对路径(如:/home/user/project/config/settings.ini)
  • 优势:避免手动拼接路径分隔符,支持链式操作和跨平台兼容性
3. 动态路径操作
  • 获取当前目录
    import os
    print(os.getcwd())  # 输出当前工作目录,如:/home/user/project
  • 切换目录
    os.chdir('../')  # 切换到上级目录

三、常见问题与示例

示例1:读取当前目录下的文件
with open('./data.csv', 'r') as f:  # 直接打开当前目录文件
    content = f.read()
示例2:递归遍历子目录
from pathlib import Path
for file in Path('.').rglob('*.txt'):  # 递归查找当前目录及其子目录下的所有txt文件
    print(file.absolute())  # 输出绝对路径
示例3:避免路径错误
# 错误写法(Windows反斜杠未转义)
wrong_path = '.\subdir\file.txt'  # 反斜杠需转义或使用原始字符串r'.\subdir\file.txt'

# 正确写法(使用正斜杠或pathlib)
correct_path1 = './subdir/file.txt'
correct_path2 = Path('subdir') / 'file.txt'

四、注意事项

  1. 跨平台兼容性

    • Windows允许使用/\,但推荐用os.pathpathlib处理分隔符
    • 避免硬编码路径,如直接写C:\Users,改用动态获取(如Path.home()
  2. 相对路径的基准

    • 相对路径的解析基于当前工作目录,而非脚本所在目录。若需固定基准,建议使用__file__获取脚本路径:
      script_dir = Path(__file__).parent  # 脚本所在目录
  3. 特殊字符处理

    • 路径含空格或中文时,建议使用pathlibwrite_text()/read_text()方法,避免编码问
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值