Python中os.path.dirname(__file__)的用法

os.path.dirname()的用途

os.path.dirname()用来获取文件的路径。 如:

12

>>> os.path.dirname('/home/woodenrobot/Documents/LearnPython/test.py')/home/woodenrobot/Documents/LearnPython

os.path.dirname(file)的用途

os.path.dirname(__file__)是用来获取python文件运行时的路径。 比如有一个test.py脚本内容为:

12

import osprint(os.path.dirname(__file__))

该脚本位于/home/woodenrobot/Documents/LearnPython文件夹中,分两种情况说明:

1.当程序脚本以完整路径运行时

12

(trusty)woodenrobot@localhost:~$ python /home/woodenrobot/Documents/LearnPython/test.py/home/woodenrobot/Documents/LearnPython

此时会输出该脚本所在的完整路径。

2.当程序脚本以相对路径运行时

123

(trusty)woodenrobot@localhost:~/Documents$ python LearnPython/test.pyLearnPython(trusty)woodenrobot@localhost:~/Documents/LearnPython$ python test.py

此时则会输出其相对路径或空目录。

注意

当你在python自带的IDLE或者python command line中使用会出现以下错误:

12345

>>> import os>>> os.path.dirname(__file__)Traceback (most recent call last): File "<stdin>", line 1, in <module>NameError: name '__file__' is not defined

这是因为此时该段程序并不是从文件夹中运行的,所以并未生成__file__

参考

  1. Python零碎知识(9):有关 os.path.dirname(file)
  2. python中os.path.dirname(file)的使用
  3. Python 模块学习:os模块

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏进击的程序猿

第1章: Spring 基础第1章:Spring 基础

为了体验spring,所以建立的是一个 maven quick start 的项目,建立后的 pom.xml 配置如下:

10240
来自专栏阿杜的世界

Spring Boot:定制自己的starter

在学习Spring Boot的过程中,接触最多的就是starter。可以认为starter是一种服务——使得使用某个功能的开发者不需要关注各种依赖库的处理,不需...

12900
来自专栏精讲JAVA

Spring MVC 到底是如何工作的?

这篇文章将深入探讨Spring框架的一部分——Spring Web MVC的强大功能及其内部工作原理。

10230
来自专栏Danny的专栏

【EJB学习笔记】——有状态的会话Bean和无状态的会话Bean

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

28910
来自专栏Java 技术分享

SpringMVC(二)

17130
来自专栏用户2442861的专栏

25个经典的Spring面试问答

本人收集了一些在大家在面试时被经常问及的关于Spring的主要问题,这些问题有可能在你下次面试时就会被问到。对于本文中未提及的Spring其他模块,我会单独分...

11020
来自专栏WindCoder

Spring基础小结

Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发。

6710
来自专栏Java 源码分析

SpringBoot 笔记(九):分布式

17730
来自专栏学海无涯

Java Web之Spring Boot

我一直在尝试一个人写demo(Android和iOS)时,如何模拟服务器端返回的 JSON 数据,总的来说,我试过以下几种: 纯Servlet开发,这种方式配合...

29040
来自专栏阿杜的世界

Spring实战5-基于Spring构建Web应用主要内容

写在前面:关于Java Web,首先推荐一篇文章——写给java web一年左右工作经验的人,这篇文章的作者用精练的话语勾勒除了各种Java框架的缘由和最基本的...

12520

扫码关注云+社区

领取腾讯云代金券