1、
读取文件默认只会从当前代码操作文件的目录下读取文件。找不到就会报错。
解决方式:
1、方式一:绝对路径是指:电脑里从根目录开始的一个完整的路径 --不推荐
- 注意事项:路径特殊符号\t 一定要转义 在路径前面加一个r
- 绝对路径弊端:
1)移植给其他人电脑上用,文件前面的目录不对,要手动修改。
2)\ / 不同平台路径分隔符不一样,绝对路径不能兼容不同平台。
2、相对路径: 不会写死每一级的路径,相对层级管理,找文件路径
- 借助一个功能库实现 - pathlib
- 相对我当前的py文件找其他文件。
- 先获取当前py文件的绝对路径(动态的)
- 再去找当期文件的上级、平级、上级的上级路径…
内置功能库:Python里已经有的,可以实现一组功能的工具。比内置函数更强大更丰富。
智能识别不同win mac等系统路径的分隔符,兼容性好。
3、pathlib:路径处理的一个功能库。内置库不需要做安装,要使用的话,要导包
- import pathlib 导包后,在当前py文件才可以使用。
只要掌握三个用法: - 1)先获取当前当前py文件的绝对路径(动态的)
-
- 如何获取我的上级路径?上级的上级?
-
- 如何获取同级的目录?下级目录、下下级?
绝对路径:
# 绝对路径:
# 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)