文件目录层级
一、文件读取的绝对路径和相对路径
用相对路径和绝对路径读取上一层目录的文件、下一层目录的文件及读取同层级的文件。
# @File : platform.py.py
"""1、绝对路径读取文件"""
with open(r"C:\Users\chengjingd\PycharmProjects\pythonProject13\testa\platform\myprocessor\test2.txt", 'r') as f:
print(f.read())
"""2、相对路径读取文件"""
# 读取下一层目录的test2.txt文件
with open("myprocessor/test2.txt", 'r') as f:
print(f.read())
# 读取同层目录的test1.txt
with open("test1.txt", 'r') as f:
print(f.read())
# 读取上一层目录的test.txt文件
with open("../test.txt", 'r') as f:
print(f.read())
..表示进入上一层目录。
若在cite_f.py里读取 test.txt即上上层目录,只要将路径替换为"../../test2.txt"即可。
二、package的绝对路径及相对路径导入
绝对导入的格式为 import A.B
或 from A import B
,相对导入格式为 from . import B
或 from ..A import B
,.代表当前模块,..代表上层模块,...代表上上层模块,依次类推。
相对导入可以避免硬编码带来的维护问题,例如我们改了某一顶层包的名,那么其子包所有的导入就都不能用了。但是 存在相对导入语句的模块,不能直接运行,否则会有异常: