python文件读取&导包的绝对路径、相对路径

😊作者简介:大家好我是hellobigorange,大家可以叫我大橙子
📃个人主页hellobigorange的个人主页
📰如果觉得博主的文章还不错的话,请👍三连支持一下博主哦🤞
💖本文摘要:本文主要讲述了文件读取的绝对路径和相对路径;导包的绝对路径和相对路径,以及当前工作路径和绝对路径的区别(os.getcwd(),os.pah.abspath(__file__)
python文件读取&导包的绝对路径、相对路径

文件目录层级
python文件读取&导包的绝对路径、相对路径

一、文件读取的绝对路径和相对路径

用相对路径和绝对路径读取上一层目录的文件、下一层目录的文件及读取同层级的文件。

# @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.Bfrom A import B,相对导入格式为 from . import Bfrom ..A import B.代表当前模块,..代表上层模块,...代表上上层模块,依次类推。

相对导入可以避免硬编码带来的维护问题,例如我们改了某一顶层包的名,那么其子包所有的导入就都不能用了。但是 存在相对导入语句的模块,不能直接运行,否则会有异常:

🙉相对路径运行注意事项:

在没有明确指定包结构的情况下,Python 是根据 __name__ 来决定一个模块在包中的结构的,如果是 __main__ 则它本身是顶层模块,没有包结构,如果是A.B.C 结构,那么顶层模块是 A。基本上遵循这样的原则:

2.1 导包以绝对路径导入

# @File : platform1.py.py
from testa.platform.myprocessor.myprocessor import *
# 引用同级目录的模块
from a import *
# 引用下一级目录的模块
from myprocessor.myprocessor import *
# 引用上一级目录的模块
from testa.main import *

2.2 导包以相对路径导入

"""在myprocessor.py内导入同等级目录的cite_f"""
# @File : myprocessor.py.py
from .cite_f import f
"""在上一层目录里的platform1.py调用myprocessor.py"""
# @File : platform1.py.py
from myprocessor.myprocessor import *

"""在myprocessor.py内导入同等级目录的cite_f及上层目录的platform1.py"""
# @File : myprocessor.py.py
from .cite_f import f
from ..platform1 import *
"""在上上一层目录里的main.py调用myprocessor.py"""
# @File : main.py.py
from testa.platform.myprocessor.myprocessor import *

参考引用:python的包相关的知识
模块:一组功能的组合,任何以.py结尾的都可以称作模块
:多个模块的组合,py2要求必须有__init__.py,py3不需要

三、运行脚本的当前工作路径和绝对路径

# @File : myprocessor.py.py
import os
print("当前工作路径:",os.getcwd())
print("绝对路径:",os.path.abspath(__file__))
# @File : platform1.py.py
from myprocessor.myprocessor import *

运行脚本platform1.py会显示

当前工作路径: C:\Users\PycharmProjects\pythonProject13\testa\platform
绝对路径: C:\Users\PycharmProjects\pythonProject13\testa\platform\myprocessor\myprocessor.py
在脚本中运行示例
python文件读取&导包的绝对路径、相对路径

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2023年3月10日
下一篇 2023年3月10日

相关推荐