python打印当前文件的绝对路径并解决打印为空的问题
作者:呆萌的代Ma 发布时间:2023-10-26 16:24:00
标签:python,打印当前文件,绝对路径,文件路径获取
python打印当前文件的绝对路径并解决打印为空
获取当前文件所在路径主要使用os.path.dirname(os.path.abspath(__file__))
:
import os
file_path = os.path.dirname(os.path.abspath(__file__))
print(file_path)
不能使用下面代码,在有些情况下路径会是空
os.path.dirname(__file__)
示例:得到相对位置的文件路径
上级文件夹下的文件,比如config.yaml
文件的路径可以表示为:os.path.dirname(os.path.abspath(__file__)) + "/../conf/config.yaml"
|_ conf
|_ config.yaml
|_src
|_代码 # 当前位置
补充:python中对文件路径的获取
1、获取当前文件的绝对路径
import os
cur_path = os.path.abspath(__file__)
print(cur_path)
输出:E:\python\project\test\path_test.py
2、获取当前文件的所在目录
import os
cur_dir = os.path.dirname(os.path.abspath(__file__)) # 上级目录
print(cur_dir)
输出:E:\python\project\test
3、获取当前文件所在目录的上一级目录
import os
cur_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # 上级目录
print(cur_dir)
输出:E:\python\project
4、获取指定文件的路径(例如想获得project文件夹下的test.txt文件路径)
import os
# 法一
cur_dir1 = os.path.dirname(os.path.abspath(__file__))
path1 = os.path.join(os.path.abspath(cur_dir + os.path.sep + ".."), "test.txt")
# 法二
cur_dir2 = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
path2 = os.path.join(os.path.dirname(cur_dir), "test.txt")
print(path1)
print(path2)
输出:
E:\python\project\test.txt
E:\python\project\test.txt
注意:
只有当在脚本中执行的时候,os.path.abspath(file)才会起作用,因为该命令是获取的当前执行脚本的完整路径,如果在交互模式或者terminate 终端中运行会报没有__file__这个错误。
来源:https://blog.csdn.net/weixin_35757704/article/details/123268431


猜你喜欢
- 本文将遍历批量数据点并让TensorFlow更新斜率和y截距。这次将使用Scikit Learn的内建iris数据集。特别地,我们将用数据点
- 探究多个装饰器执行顺序装饰器是Python用于封装函数或代码的工具,网上可以搜到很多文章可以学习,我在这里要讨论的是多个装饰器执行顺序的一个
- 实例引入我们知道 Python 是一种动态语言,在声明一个变量时我们不需要显式地声明它的类型,例如下面的例子:a = 2print('
- 网页布局中常有的一种情况就是网页主体部分分成一行两列;而在很多种情况下,设计师们常把左右两列的背景色设计成不同色彩,以实现内容块的明显区分;
- 一、前言之前做了一个算法作业,叫做棋盘覆盖,本来需要用c语言来编写的,但是因为我的c语言是半桶水(哈哈),所以索性就把网上的c语言写法改成J
- 前言replace into平时在开发中很少用到,这次是因为在做一个生成分布式ID的开源项目,调研雅虎推出的一个基于数据库生成唯一id生成方
- 1.在python文件下新建python文件,输入文件名后按Enter键生成,比如: one.py .2.简单输入python代码: pri
- ---在仓储管理中经常会碰到的一个问题 一、关于LIFO与FIFO的简单说明 ---FIFO: First in, First out.先进
- 一般来说,我们为了得到更完整的结果,我们需要从两个或更多的表中获取结果,我一般都是用select xxx,xxx from 表1,表2 wh
- 代码在ext里的src\core\ext.js下 最新的ext3.0beat1的代码如下: ua = navigator.userAgent
- 我就废话不多说了,直接上代码吧!import turtleturtle.pensize(5)turtle.pencolor("ye
- 本文定位:已将CPU历史数据存盘,等待可视化进行分析,可暂时没有思路。前面一篇文章(https://www.jb51.net/article
- 浏览器缓存浏览器缓存是浏览器在本地磁盘对用户最近请求过的文档进行存储,当访问者再次访问同一页面时,浏览器就可以直接从本地磁盘加载文档。所以根
- 注:我指一个网站被第三方网站以iframe的形式调用时,被调用网站的禁止策略 和 调用网站的突破禁止策略,跟XSS麽关系,但跟clickja
- 进程与线程的历史我们都知道计算机是由硬件和软件组成的。硬件中的CPU是计算机的核心,它承担计算机的所有任务。 操作系统是运行在硬件之上的软件
- 终于开始做用户部分了,先做注册一用户 1.1用户注册 首先在Models里添加用户注册模型类UserRegister 继
- 1、代码1:(1)进度条等显示在主窗口状态栏的右端,代码如下:from PyQt5.QtWidgets import QMainWindow
- Django结合ajax进行页面实时更新踩过的坑简单记录一下在使用Django、echarts和ajax实现数据动态更新时遇到的一些坑: 1
- 如何将123456789转化成123,456,789这样的形式呢?很多流量大的站比如优酷都有这样的格式。也是设计程序最常用的算
- 本文实例讲述了Python实现翻转数组功能。分享给大家供大家参考,具体如下:题目描述给定一个长度为n的整数数组a,元素均不相同,问数组是否存