Python pycharm读取文件相对路径与绝对路径的方法
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读取文件相对路径绝对路径内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
git使用.gitignore设置不生效或不起作用问题的解决方法
下面小编就为大家带来一篇git使用.gitignore设置不生效或不起作用问题的解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-06-06pandas中concatenate和combine_first的用法详解
本文主要介绍了pandas中concatenate和combine_first的用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-01-01Pyinstaller打包多个资源文件的超详细教程(推荐!)
Pyinstaller是著名python打包module,软件或者小工具用python写好后,用pyinstaller 可以实现轻松打包,下面这篇文章主要给大家介绍了关于Pyinstaller打包多个资源文件的超详细教程,需要的朋友可以参考下2022-12-12Django JSONField的自动转换思路详解(django自定义模型字段)
如果想实现JSONField的自动转换,可以使用Django REST framework的JSONField,或者自定义一个字段类并覆盖from_db_value()和get_prep_value()方法来实现这个功能,这篇文章主要介绍了Django JSONField的自动转换(django自定义模型字段)问题,需要的朋友可以参考下2023-06-06Python使用logging模块实现打印log到指定文件的方法
这篇文章主要介绍了Python使用logging模块实现打印log到指定文件的方法,结合实例形式分析了Python logging模块的原理及相关日志输出操作技巧,需要的朋友可以参考下2018-09-09python tkinter的消息框模块(messagebox,simpledialog)
这篇文章主要介绍了python tkinter的消息框模块,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下2020-11-11
最新评论