Python的路径pathlib库

1、
读取文件默认只会从当前代码操作文件的目录下读取文件。找不到就会报错。
解决方式:
1、方式一:绝对路径是指:电脑里从根目录开始的一个完整的路径 --不推荐

  • 注意事项:路径特殊符号\t 一定要转义 在路径前面加一个r
  • 绝对路径弊端:
    1)移植给其他人电脑上用,文件前面的目录不对,要手动修改。
    2)\ / 不同平台路径分隔符不一样,绝对路径不能兼容不同平台。

2、相对路径: 不会写死每一级的路径,相对层级管理,找文件路径

  • 借助一个功能库实现 - pathlib
  • 相对我当前的py文件找其他文件。
    • 先获取当前py文件的绝对路径(动态的)
    • 再去找当期文件的上级、平级、上级的上级路径…

内置功能库:Python里已经有的,可以实现一组功能的工具。比内置函数更强大更丰富。
智能识别不同win mac等系统路径的分隔符,兼容性好。

3、pathlib:路径处理的一个功能库。内置库不需要做安装,要使用的话,要导包

  • import pathlib 导包后,在当前py文件才可以使用。
    只要掌握三个用法:
  • 1)先获取当前当前py文件的绝对路径(动态的)
    1. 如何获取我的上级路径?上级的上级?
    1. 如何获取同级的目录?下级目录、下下级?

绝对路径:

# 绝对路径:
# with open(r"D:\Pycharm_workspace\python73_class\day07_文件路径处理和模块包\data\test73_1", encoding="utf8") as f:
#     data = f.read()
#     print(data)

相对路径:

import pathlib  # 导包
# 1)先获取当前当前py文件的绝对路径(动态的)
# D:\Project\python_73\day07_文件路径处理和模块包\data\test73_1
current_path = pathlib.Path(__file__).absolute()
print(current_path)

# 目的:如何获取当前文件的同级目录的下级?
# # 2) 如何获取我的上级路径?上级的上级?
parent_path = pathlib.Path(__file__).absolute().parent
print(f"parent_path:{
      
      parent_path}")
parent_path1 = pathlib.Path(__file__).absolute().parent.parent
print(f"parent_path1:{
      
      parent_path1}")

# # 3) 如何获取同级的目录?下级目录、下下级?
data_path = pathlib.Path(__file__).absolute().parent/"data"/"test73_1"
print(data_path)