Python pycharm读取文件相对路径与绝对路径的方法
作者:爱犯错的智能体_1
1.绝对路径
要读取如图所示文件的相对路径:
方法1:直接根据文件路径手动读取
D:\PycharmProjects\pythonProject\torch_learning\test_path.py
方法2:os.path.abspath(path)获取
path = "test_path.py" # path为文件的名称 print(os.path.abspath(papathth)) # 采用os.path.abspath方法获取绝对路径 # 代码结果如下:D:\PycharmProjects\pythonProject\torch_learning\read_data.py
2.绝对路径
比如我想从左图文件”test_path“访问右图"0013035.jpg"文件,采用相对路径:
1.获取当前文件的绝对路径:D:\PycharmProjects\pythonProject\torch_learning\test_path.py
2.获取访问文件的绝对路径:D:\PycharmProjects\pythonProject\torch_learning\dataset\train\ants\0013035.jpg
3.可以看出,要是想从”test_path.py“到"0031035.jpg"必须经过”torch_learning“的文件夹,相当于把它当作一个过渡文件夹
4.相对路径为:”./dataset/train/ants/0013035.jpg“
3.区分pycharm中的窗口运行程序的相对路径和控制台运行的路径
窗口运行程序的相对路径是针对此时运行的文件而言的
而控制台运行程序的相对路径是由当前你创建的虚拟环境所在的位置决定的。
比如我创建的虚拟环境的名称为”pythonProject1“,那么Python控制台的相对路径就是从此开始的。
附:在Python中以相对路径或者绝对路径来导入文件或者模块的方法
在调试代码的时候,程序一直提示没有该模块,一直很纳闷,因为我导入文件一直是用绝对路径进行导入的。按道理来讲是不会出现模块找不到的情况的。
最后仔细分析了整个代码的目录结构,才发现了问题。
下面依次来说明一下今天的情况
先看导入的代码:
在demo——mnist.py文件中执行以下两种导入操作 # 第一处 from gcforest.gcforest import GCForest from gcforest.utils.config_utils import load_json # 第二处 config = load_json("demo_mnist-ca.json") # 里面传入的是文件的位置,这个函数是读取配置文件的内容
然后看一下目录的结构
在此例中,demo_mnist,py为主文件。它第一处要导入的是它当前目录的父目录下的一个子目录中的一个目录中的文件。
所以以绝对路径导入这个文件就是 from lib.gcforest.gcforet import GCForest
以相对路径导入这个文件就是 from ..gcforest.gcforet import GCForest
第二处导入的是它统一个目录下的另一个文件,所以可以直接导入
所以修改的导入代码为:config = load_json("demo_mnist-ca.json")
总结
到此这篇关于Python pycharm读取文件相对路径与绝对路径的文章就介绍到这了,更多相关pycharm读取文件相对路径绝对路径内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!