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基础知识——跨目录调用文件相关推荐

  1. Python基础知识十二【文件操作】

    文件操作 1.文本文件和二进制文件 2.文件操作相关模块概述 3.创建文件对象 4.文本文件的写入 4.1基本的文件写入操作 5.常用编码介绍 5.1 ASCII 5.2 ISO8859-1 5.3 ...

  2. 2.Python 基础知识

    文章目录 Python 基础知识 知识点一 : 注释 1.单行注释 2.多行注释 知识点二 : 变量 知识点三 : 数据类型 1.数字类型 1.1 整型 1.2 浮点型 1.3 复数类型 2.字符串 ...

  3. Python基础知识总结

    1. Python基础知识 1.1  Python历史 1.1.1 Python起源 Python的作者,Guido von Rossum,荷兰人.1982年,Guido从阿姆斯特丹大学获得了数学和计 ...

  4. Python基础知识学习笔记——Matplotlib绘图

    Python基础知识学习笔记--Matplotlib绘图 整理python笔记,以防忘记 文章目录 Python基础知识学习笔记--Matplotlib绘图 一.绘图和可视化 1.导入模块 2.一个简 ...

  5. python基础知识-python基础知识(一)

    最近花时间整理了一下以前学过的python基础知识,语言最多的是使用. 1.1 开发模式 交互模式:简单的调试或者测试 开发流程 创建以.py结尾的python文件 在python文件中输入打印&qu ...

  6. python环境下数据操作_数据分析环境搭建和Python基础知识

    搭建数据分析环境主要包括使用anaconda管理包和环境:使用Jupyter notebook将说明文本.数学方程.代码和可视化内容全部组合到一个易于共享的文档中.Python基础知识包括关键点(数据 ...

  7. Python基础知识总结(期末复习精简版)

    文章目录 知识汇总 前言 推荐的学习资料 复习要点 组合数据类型 序列类型通用操作符和函数 集合类型 映射类型 数值操作 运算符 字符串操作 字符串切片 基本切片操作 高级切片操作 操作.相关函数.相 ...

  8. Python基础知识笔记

    文章目录 Python基础知识 教程:https://www.liaoxuefeng.com/wiki/1016959663602400 内置函数:https://docs.python.org/3/ ...

  9. 1、Python 基础知识总结

    1.Python 简介 Python 是一门简单易学的,面向对象的,解释型的脚本语言,也是一种开源的.可移植性强的.可扩展性强的高级编程语言,常用于科学计算与人工智能.WEB 开发.金融.云计算等领域 ...

最新文章

  1. 五、MDT 2013 Update 1批量部署-WINDOWS 7样本机镜像部署
  2. linux 查看cpu_看看你的嵌入式设备CPU温度是多少,能烤肉吗?
  3. 四十八、第二份国外的Python考试(下篇)
  4. 游戏开发者需要注意的4个内存使用问题
  5. C语言中无符号数和有符号数相加问题
  6. discuz加密解密,可参考下
  7. 树的重心 背诵用模板
  8. SpringCloud或SpringBoot+Mybatis-Plus利用mybatis插件实现数据操作记录及更新对比
  9. 赛道二周冠分享:石头哥有些心里话要说一说
  10. java自动校准程序_java – VisualVM校准步骤与Windows 10挂起
  11. plsql 连接oralce数据库,报ora 12557 tns 协议适配器不可加载错误
  12. 铁通玩跑跑卡丁车经常出现服务器无响应之解决办法
  13. 3D点云处理:点云曲率-主曲率/高斯曲率/平均曲率
  14. mysql免安装版本
  15. 如何将pdf文件转换成图片格式,插入到word中
  16. Amigo---Android hotfix terminator
  17. 两个摄像头合成一路_监控系统中多路视频的合成方法
  18. 分析器错误信息 未能加载类型 命名空间 类 ---小结
  19. FITC-PEG-Biotin,荧光素-聚乙二醇-生物素的相关检测
  20. Virut.ce-感染型病毒分析报告

热门文章

  1. 【LeetCode】Day119-找到小镇的法官可达所有点的最少点数目
  2. 机器人 郑佳佳_硕士充气娃娃结婚 称想和娃娃慢慢变老
  3. jquery.slimscroll.js 插件库的应用
  4. matlab的meadian函数_24 第二十四章 时间序列模型_W
  5. Github 上的源代码同步到自己的Gitlab 脚本
  6. 蓝牙室内定位之高精度AOA定位技术未来发展趋势-新导智能
  7. 百度飞桨公布最新成果:凝聚535万开发者,服务20万家企事业单位
  8. 磁盘与虚拟磁带库优缺点分析
  9. 通过QQ查看对方地址
  10. 如何创建网站?网站制作基本流程详解