Python涉及路径相关的知识点
- 脚本中的路径信息
print('__file__:', __file__) # 脚本的位置
print('os.path.abspath(__file__)::', __file__) # 脚本的绝对路径(和上面的一般情况下是一样的)
print('os.path.abspath(__file__):',os.path.abspath(__file__))
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) # 脚本所在的目录
print('SCRIPT_DIR:',SCRIPT_DIR)
sys.path.append(os.path.dirname(SCRIPT_DIR)) # 把脚本所在目录的父目录添加到sys.path中,这样同级目录的模块就可以使用绝对导入,而避免相对导入可能遇到的问题。
# 对于函数指定路径的问题
def as_int(a):
with open('e.txt','w') as f: #在工作运行目录创建e.txt
f.write("2")
import os
print(os.listdir()) #扫描的是工作运行目录下的文件列表
return int(a)
- 导入相关的问题
- 当我们导入一个模块时: import xxx ,默认情况下python解释器会搜索当前目录、已安装的内置模块和第三方模块。
- 搜索路径存放在sys模块的path中。【即默认搜索路径可以通过sys.path打印查看】
- sys.path是一个列表 list ,它里面包含了已经添加到系统的环境变量路径。
- 当我们要添加自己的引用模块搜索目录时,可以通过列表 list 的 append()方法;
参考信息
相对导入的问题(详细|重要) https://stackoverflow.com/questions/16981921/relative-imports-in-python-3
python之sys.path介绍 https://www.cnblogs.com/chentiao/p/16683611.html