经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python » 查看文章
python打印当前文件的绝对路径并解决打印为空的问题
来源:jb51  时间:2023/3/14 8:46:08  对本文有异议

python打印当前文件的绝对路径并解决打印为空

获取当前文件所在路径主要使用os.path.dirname(os.path.abspath(__file__))

  1. import os
  2.  
  3. file_path = os.path.dirname(os.path.abspath(__file__))
  4. print(file_path)

不能使用下面代码,在有些情况下路径会是空

  1. os.path.dirname(__file__)

示例:得到相对位置的文件路径

上级文件夹下的文件,比如config.yaml文件的路径可以表示为:os.path.dirname(os.path.abspath(__file__)) + "/../conf/config.yaml"

  1. |_ conf
  2. |_ config.yaml
  3. |_src
  4. |_代码 # 当前位置

补充:python中对文件路径的获取

1、获取当前文件的绝对路径

  1. import os
  2. cur_path = os.path.abspath(__file__)
  3. print(cur_path)

输出:E:\python\project\test\path_test.py

2、获取当前文件的所在目录

  1. import os
  2. cur_dir = os.path.dirname(os.path.abspath(__file__)) # 上级目录
  3. print(cur_dir)

输出:E:\python\project\test

3、获取当前文件所在目录的上一级目录

  1. import os
  2. cur_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # 上级目录
  3. print(cur_dir)

输出:E:\python\project

4、获取指定文件的路径(例如想获得project文件夹下的test.txt文件路径)

  1. import os
  2. # 法一
  3. cur_dir1 = os.path.dirname(os.path.abspath(__file__))
  4. path1 = os.path.join(os.path.abspath(cur_dir + os.path.sep + ".."), "test.txt")
  5. # 法二
  6. cur_dir2 = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
  7. path2 = os.path.join(os.path.dirname(cur_dir), "test.txt")
  8. print(path1)
  9. print(path2)

输出:

E:\python\project\test.txt
E:\python\project\test.txt

注意:
只有当在脚本中执行的时候,os.path.abspath(file)才会起作用,因为该命令是获取的当前执行脚本的完整路径,如果在交互模式或者terminate 终端中运行会报没有__file__这个错误。

到此这篇关于python打印当前文件的绝对路径,并解决打印为空的文章就介绍到这了,更多相关python打印当前文件的绝对路径内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号