IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python基础知识——跨目录调用文件 -> 正文阅读

[Python知识库]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中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-06-16 21:39:44  更:2022-06-16 21:40:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 12:51:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码