Python基础知识——跨目录调用文件
sys.path.append() :
1、python本身不支持跨目录调用文件
2、该语句的目的是为了将父目录加入到sys.path (python的搜索模块的路径)
3、使得python可以导入父目录下的任何目录中的任何文件
4、是一个设定语句
5、当我们导入一个模块时:import xxx,默认情况下python解析器会搜索当前目录、已安装的内置模块和第三方模块,搜索路径存放在sys模块的path中
6、sys.path 返回的是一个列表!
该路径已经添加到系统的环境变量了,当我们要添加自己的搜索目录时,可以通过列表的append()方法;对于模块和自己写的脚本不在同一个目录下,在脚本开头加sys.path.append():
例:
1、python在 执行 atm.py 脚本,脚本调用 setting.py 和main.py 模块。
2、由于调用的模块不在同级目录和同一文件下,直接调用会报错: ModuleNotFoundError: No module named ‘conf’
3、跨目录调用文件,要在执行文件开头添加命令:sys.path.append(),将两个文件的父目录添加到sys.path列表中,即图中:Atm文件夹的目录的路径
import os
import sys
# 打印文件绝对路径(absolute path)
print (os.path.abspath(__file__))
# 打印文件的目录路径(文件的上一层目录),这个时候是在 bin 这一层。
print (os.path.dirname( os.path.abspath(__file__) ))
# 打印文件的目录路径(文件的上两层目录), 这个时候是在 atm 这一层。就是os.path.dirname这个再用了一次
print (os.path.dirname(os.path.dirname( os.path.abspath(__file__) )))
# 要调取其他目录下的文件。 需要在atm这一层才可以
BASE_DIR= os.path.dirname(os.path.dirname( os.path.abspath(__file__) ))
# 将这个路径添加到环境变量中。
sys.path.append( BASE_DIR )
# 根据目录调取程序(文件)from conf import setting
# 根据目录调取程序(文件)
from foo import main #直接执行程序
setting
#执行程序中的函数
main.login()
os.path.abspath 与 os.path.dirname
# 打印文件绝对路径(absolute path)
print (os.path.abspath(__file__))
# 打印文件的目录路径(文件的上一层目录),这个时候是在 bin 这一层。
print (os.path.dirname( os.path.abspath(__file__) ))
# 打印文件的目录路径(文件的上两层目录), 这个时候是在 atm 这一层。就是os.path.dirname这个再用了一次
print (os.path.dirname(os.path.dirname( os.path.abspath(__file__) ))) # 打印文件的目录路径,这个时候是在 bin 这一层。
print (os.path.dirname(__file__))
# 打印文件的目录路径, 这个时候是在 atm 这一层。就是os.path.dirname这个再用了一次
print (os.path.dirname( os.path.dirname(__file__) ))
Python基础知识——跨目录调用文件相关推荐
- Python基础知识十二【文件操作】
文件操作 1.文本文件和二进制文件 2.文件操作相关模块概述 3.创建文件对象 4.文本文件的写入 4.1基本的文件写入操作 5.常用编码介绍 5.1 ASCII 5.2 ISO8859-1 5.3 ...
- 2.Python 基础知识
文章目录 Python 基础知识 知识点一 : 注释 1.单行注释 2.多行注释 知识点二 : 变量 知识点三 : 数据类型 1.数字类型 1.1 整型 1.2 浮点型 1.3 复数类型 2.字符串 ...
- Python基础知识总结
1. Python基础知识 1.1 Python历史 1.1.1 Python起源 Python的作者,Guido von Rossum,荷兰人.1982年,Guido从阿姆斯特丹大学获得了数学和计 ...
- Python基础知识学习笔记——Matplotlib绘图
Python基础知识学习笔记--Matplotlib绘图 整理python笔记,以防忘记 文章目录 Python基础知识学习笔记--Matplotlib绘图 一.绘图和可视化 1.导入模块 2.一个简 ...
- python基础知识-python基础知识(一)
最近花时间整理了一下以前学过的python基础知识,语言最多的是使用. 1.1 开发模式 交互模式:简单的调试或者测试 开发流程 创建以.py结尾的python文件 在python文件中输入打印&qu ...
- python环境下数据操作_数据分析环境搭建和Python基础知识
搭建数据分析环境主要包括使用anaconda管理包和环境:使用Jupyter notebook将说明文本.数学方程.代码和可视化内容全部组合到一个易于共享的文档中.Python基础知识包括关键点(数据 ...
- Python基础知识总结(期末复习精简版)
文章目录 知识汇总 前言 推荐的学习资料 复习要点 组合数据类型 序列类型通用操作符和函数 集合类型 映射类型 数值操作 运算符 字符串操作 字符串切片 基本切片操作 高级切片操作 操作.相关函数.相 ...
- Python基础知识笔记
文章目录 Python基础知识 教程:https://www.liaoxuefeng.com/wiki/1016959663602400 内置函数:https://docs.python.org/3/ ...
- 1、Python 基础知识总结
1.Python 简介 Python 是一门简单易学的,面向对象的,解释型的脚本语言,也是一种开源的.可移植性强的.可扩展性强的高级编程语言,常用于科学计算与人工智能.WEB 开发.金融.云计算等领域 ...
最新文章
- 五、MDT 2013 Update 1批量部署-WINDOWS 7样本机镜像部署
- linux 查看cpu_看看你的嵌入式设备CPU温度是多少,能烤肉吗?
- 四十八、第二份国外的Python考试(下篇)
- 游戏开发者需要注意的4个内存使用问题
- C语言中无符号数和有符号数相加问题
- discuz加密解密,可参考下
- 树的重心 背诵用模板
- SpringCloud或SpringBoot+Mybatis-Plus利用mybatis插件实现数据操作记录及更新对比
- 赛道二周冠分享:石头哥有些心里话要说一说
- java自动校准程序_java – VisualVM校准步骤与Windows 10挂起
- plsql 连接oralce数据库,报ora 12557 tns 协议适配器不可加载错误
- 铁通玩跑跑卡丁车经常出现服务器无响应之解决办法
- 3D点云处理:点云曲率-主曲率/高斯曲率/平均曲率
- mysql免安装版本
- 如何将pdf文件转换成图片格式,插入到word中
- Amigo---Android hotfix terminator
- 两个摄像头合成一路_监控系统中多路视频的合成方法
- 分析器错误信息 未能加载类型 命名空间 类 ---小结
- FITC-PEG-Biotin,荧光素-聚乙二醇-生物素的相关检测
- Virut.ce-感染型病毒分析报告