首页 > 其他分享 >模块与包

模块与包

时间:2023-12-14 21:12:24浏览次数:21  
标签:add 导入 模块 import path os

模块与包

1. 导入模块与包

1.1 import语法

import xxx 模块名
# import 语句无法加载到模块下面的变量名,他只能加载到模块名
# # import 只能导入模块名

# 此时我在src包下的login_register.py模块中,我想引用add_bank模块内的方法
import add_bank
# 引用add_bank里的方法,需要加上模块名
print(add_bank.name)


import add_bank 这句话会发生那些事?
# 【1】import add_bank :先进入到 add_bank 模块里面
# 【2】加载 add_bank 模块里面的名称空间
# 【3】回到自己的文件 login 中 , 向下继续加载自己的名称空间
# 【4】login模块里面的名称空间 ---> add_bank 模块里面 + login模块里面的名称空间
print(sys.modules)

1.2 from xx import xx语法

from ... import .. 
# 语句可以将 需要导入模块里面的指定变量名加载进来

# 此时我在src包下的login_register.py模块中,我想引用utils包中的Decorator的模块内的方法
from ATM.utils.Decorator import *
# * 代表模块中所有方法
# 也可以具体写某个方法名称

1.3 循环导入

  • 循环导入问题指的是在一个模块加载/导入的过程中导入另外一个模块
    • 而在另外一个模块中又返回来导入第一个模块中的名字
  • 由于第一个模块尚未加载完毕
    • 所以引用失败、抛出异常
  • 究其根源就是在python中
    • 同一个模块只会在第一次导入时执行其内部代码
    • 再次导入该模块时
    • 即便是该模块尚未完全加载完毕也不会去重复执行内部代码
1.3.1 循环引入产生的问题的解决方案
  • 方案一
    • 导入语句放到最后,保证在导入时,所有名字都已经加载过
  • 方案二
    • 导入语句放到函数中,只有在调用函数时才会执行其内部代码

2. 相对路径和绝对路径

  • 绝对路径:

    • 绝对路径是从文件系统的根目录(或其他参考点)开始的完整路径

    • 用绝对路径时,你指定的路径是从文件系统的根目录开始的

    • 示例(在 Unix/Linux 系统中):/home/user/documents/file.txt

    • 示例(在 Windows 系统中):C:\Users\User\Documents\file.txt

  • 相对路径:

    • 相对路径是相对于当前工作目录或其他相对位置的路径
    • 使用相对路径时,你指定的路径是相对于执行脚本的当前工作目录的。
    • 示例:../parent_directory/file.txt
    • .代表同层目录 ..代表父级目录

3. os模块导读

3.1 什么是os模块

  • os 模块是 Python 标准库中的一个核心模块,提供了与操作系统交互的功能。它包含许多与文件系统、进程控制、环境变量等相关的函数

3.2 常用模块函数

# 路径操作


# 获取当前文件所在文件夹的路径,当前文件的上层路径
# os.path.dirname(__file__)
# /Users/chenxu/Documents/pythonProjects28/ATM
BASE_DIR = os.path.dirname(__file__)

# 获取当前文件的绝对路径
# os.path.abspath(path)
# /Users/chenxu/Documents/pythonProjects28/ATM/setting.py
abspath= os.path.abspath(__file__)

# 拼接路径
# os.path.join()
# /Users/chenxu/DocumentythonProjects28/ATM/database/pwd
PWD_DIR = os.path.join(DB_DIR, 'pwd')

# 判断当前路径是否存在
# os.path.exists(path)
exists = os.path.exists(p1)

# 创建文件夹
# 单层文件夹
os.mkdir(path)

# 多层文件夹
os.makedirs(path)

标签:add,导入,模块,import,path,os
From: https://www.cnblogs.com/Formerly/p/17902014.html

相关文章

  • 模块与包
    【模块】定义 使用方法(import文件名  使用) (from文件名 import 需要调用的东西) (formimport 案例) (包的定义) (yild生成器) (模块导入的优先级) ......
  • Python项目之ATM1.0多模块函数
    ATM1.0多模块【作业】#ATM:提款姬#===================用户功能菜单=====================#1.注册#2.登陆#3.取款#4.转账#5.充值余额#6.查看流......
  • 关于找不到指定的模块,异常来自HRESULT:0x8007007E的解决方法
    原文链接:https://www.cnblogs.com/ReBack2010/p/3713851.html上午从公司前辈那里拷贝到的ASP.NET代码,在自己机器上部署的时候发现问题,直接报错,找不到指定的模块,异常来自HRESULT:0x8007007E。并且一大堆警告。在网上百度很多解决方法,归纳如下:1、缺少DLL文件,我用depends打开我的B......
  • 拍卖直播电商平台再“内卷”,开发创新增值服务模块刻不容缓
    随着拍卖直播电商平台逐渐崛起,未来的竞争将在于谁能提供更多样化、个性化的创新增值服务成为了“内卷”新方向。不同拍卖领域的创新增值服务,将成为平台吸引用户和赢得市场份额的关键。以下是参考“东莞梦幻网络科技”开发的电商拍卖直播系统源码各个领域的关键增值服务:一、原石拍......
  • os模块的使用
    1.os.getcwd()、os.path.basename()、os.path.join()用法: 2.os.path.exists()、os.path.isdir()、os.path.isfile()、os.listdir()用法: 3.os.walk()用法: 4.os.scandir()用法: 5.os.stat()、os.mkdir()、os.makedirs()用法: 6.os.rename()用法: 7.os.remove()用法:......
  • Python项目之ATM1.0单模块函数版
    ATM1.0【作业】#ATM:提款姬#===================用户功能菜单=====================#1.注册#2.登陆#3.取款#4.转账#5.充值余额#6.查看流水#......
  • DC电源模块:为您的电子设备提供稳定可靠的能量
    DC电源模块:为您的电子设备提供稳定可靠的能量BOSHIDADC电源模块是一种电子设备,用于为其他电子设备提供稳定可靠的直流电能。它通常由一个输入端,一个输出端和一些内部电路组成。输入端通常接收来自交流电源或其他电源的电能,经过内部电路的处理后,以所需的稳定电压输出到输出端,供其......
  • 模块与包
    模块什么是模块?模块就是一些列功能的集合体,通常一个py文件就是一个模块。一个Python文件本身就是一个模块,文件名m.py,模块名叫m模块分为三大类1.内置的模块(python解释器自带的模块,直接使用)2.第三方的模块(python社区伙伴们开源提供的python模块,需要下载后使用)3.自定义的......
  • 【Web攻防之业务安全实战指南】第5章 业务办理模块测试
    5.1订单ID篡改测试5.1.1测试原理和方法在有电子交易业务的网站中,用户登录后可以下订单购买相应产品,购买成功后,用户可以查看订单的详情。当开发人员没有考虑登录后用户间权限隔离的问题时,就会导致平行权限绕过漏洞。攻击者只需注册一个普通账户,就可以通过篡改、遍历订单id,获得其......
  • Python——第五章:Zipfile模块
    Zipfile模块zipfile模块是Python中用于处理ZIP文件的标准库模块。它提供了创建、读取和写入ZIP文件的功能。zipfile模块在写入文件时,如果要将文件写入子目录,需要在写入文件前先创建好相应的目录结构。创建压缩包在使用zipfile.ZipFile写入模式(mode="w")时,如果指......