os.path.dirname(os.path.abspath(__file__)) 和 os.path.dirname(__file__) 之间的区别

2024-01-04

settings.pyDjango 项目的文件包含这两行:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))

我想知道区别,因为我认为两者都指向同一个目录。如果您可以提供一些 os.path 函数的链接,这也会有很大的帮助。


BASE_DIR正在指向parent的目录PROJECT_ROOT。您可以将这两个定义重写为:

PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
BASE_DIR = os.path.dirname(PROJECT_ROOT)

因为os.path.dirname()功能 https://docs.python.org/3/library/os.path.html#os.path.dirname只是删除路径的最后一段。

上式中,__file__name 指向当前模块的文件名,参见Python数据模型 https://docs.python.org/3/reference/datamodel.html?highlight=__file__:

__file__是加载模块的文件的路径名(如果是从文件加载的话)。

然而,它可以是一个relative路径,所以os.path.abspath()功能 https://docs.python.org/3/library/os.path.html#os.path.abspath用于在仅删除文件名并将完整路径存储到模块所在目录之前将其转换为绝对路径PROJECT_ROOT.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

os.path.dirname(os.path.abspath(__file__)) 和 os.path.dirname(__file__) 之间的区别 的相关文章

随机推荐

  • 使用 Dapper 或通过 Linq 填充一对多关系

    实体 AllSalesTerritory包含List
  • 为什么使用负步长的字符串切片会打印空字符串? [复制]

    这个问题在这里已经有答案了 我有以下程序 str abcd l len str str2 str l 1 0 1 print str2 str2 str l 1 1 1 print str2 为什么第一个print output dcb和第
  • 使用 fortran 覆盖文件

    我正在使用 Fortran 90 程序来写入文件 该文件的第一行应该指示剩余文件中的行数 当满足某个标准且无法事先确定时 程序将写入该文件 基本上 只有在运行结束后我才会知道总行数 我想按以下方式进行 1 打开文件并在第一行写入一些文本 例
  • 计算代码的失败次数!

    这真的很花我的时间 我找不到一种简单的方法来估计以下代码 循环 的 FLOPS 循环的单次迭代有多少 FLOPS float func float atominfo float energygridItem int xindex int y
  • 如何在java中将camelCase字符串转换为下划线,保留一些大写,其余的小写?

    如何在java中将驼峰式字符串转换为下划线并保留一些大写字母 我正在使用这段代码 String inputString Hi How areYouToday String result inputString replaceAll a z
  • nullglob 禁用路径名制表符补全

    我发现shopt s nullglob显然禁用了文件和目录的制表符补全 并且shopt u nullglob恢复它 为什么目录的制表符补全显然依赖于nullglob未设置 我正在使用 Bash4 2 37 1 release在 Debian
  • 使用 compojure 从数据库提供二进制文件

    我有以下路线定义 require compojure core as ccore ring util response as response def main routes ccore defroutes avalanche routes
  • 无法创建持久存储协调器

    我收到以下错误 Terminating app due to uncaught exception NSInternalInconsistencyExprojectception reason Managed object store fa
  • 每 X 秒从 ArrayList 更新一次 JLabel - Java

    我有一个简单的Java程序 它读取一个文本文件 用 空格 分割它 显示第一个单词 等待2秒 显示下一个 等等 我想在Spring中执行此操作或其他一些 GUI 关于如何使用 spring 轻松更新单词有什么建议吗 遍历我的列表并以某种方式使
  • C# 中 AVL 树的性能

    我用C 实现了一个AVL树 其插入矩阵如下 Number of Elements Time taken to insert sec 10 0 067 100 0 073 200 0 112 500 0 388 900 1 205 1000
  • 如何通过 Concourse CI 管道发送电子邮件?

    如何设置在 Concourse 中作业完成或失败时发送的电子邮件 您可以使用https github com pivotal cf email resource https github com pivotal cf email resou
  • iPad 版 iOS 8.3 上 UIAlertView 关闭后键盘会弹出

    随着最新的 iOS 8 3 版本的发布 我们的应用程序开始出现奇怪的行为 完成文本字段编辑后 用户可以单击关闭按钮 弹出一个UIAlertView 当用户点击时discard在警报视图中 警报视图和当前视图被忽略 但不知怎的 键盘在视图消失
  • 从静态方法调用 finish()

    我正在使用 Facebook Android SDK 并希望在用户登录并获取用户对象后关闭我的 Activity 在实践中 我存储了其中的一部分 但无论如何我都想关闭该活动 make request to the me API Reques
  • Asp.Net Core 2.0 中的“HttpPostedFileBase”

    我最近正在开发一个调用 API 的 ReactJS 应用程序 使用 NET Core 2 0 开发 我的问题是如何使用HttpPostedFileBase在 NET Core 2 0 API 中 以获取文件内容并将其保存在数据库中 你没有H
  • python实时写入文件

    我有这段 python 代码 它循环遍历文本文件 urls txt 中的 url 列表 然后跟踪所有 url 的重定向 如果 url 包含特定字符串 则会将其写入名为 redirects txt 的文件中 import urllib req
  • 生产中头变量丢失

    我正在运行 Rails 3 1 后面有 PhusionPassenger 和 NGINX 我通过一个简单的 HttpClient OS X 的 GrahpicalHttpClient 发送请求 我的代码需要标头中的令牌和 ID 来验证调用者
  • 在Prepare()方法中找不到高级通配符映射参数

    从文档中 Struts2 的高级通配符映射 http struts apache org release 2 3 x docs wildcard mappings html 高级通配符 从2 1 9 开始可以在action中定义正则表达式
  • Visual Studio Ultimate 2013 安装失败

    我有一台 CLEVO x7200 Intel i7 970 3 20GHz 12Gb RAM 2x512Gb HDD 2xATI Radeon HD6970M 2Gb Crossfire 我有一个非常恼人的问题 我的笔记本电脑运行 Wind
  • 项目文件受版本控制吗?

    我从事一个大型项目 其中除项目文件之外的所有源文件都存储在版本控制中 这是首席开发人员的决定 他的理由是 协调开发人员工作目录之间的差异非常耗时 它允许开发人员独立工作 直到他们的更改稳定为止 相反 开发人员最初会获得其他开发人员的项目文件
  • os.path.dirname(os.path.abspath(__file__)) 和 os.path.dirname(__file__) 之间的区别

    settings pyDjango 项目的文件包含这两行 BASE DIR os path dirname os path dirname os path abspath file PROJECT ROOT os path dirname