- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
它们在字符串值上是相等的,但它们真的相等吗?发生了什么事?
import os
path_name1 = os.path.abspath(os.path.dirname(__file__))
path_name2 = os.path.dirname(os.path.abspath(__file__))
print(path_name1)
print(path_name2)
最佳答案
根据 here , __file__
的值是一个字符串,它是在加载器导入模块时设置的。来自 here可以看到__file__
的值为
The path to where the module data is stored (not set for built-in modules).
通常路径已经是模块的绝对路径。因此,您的代码的第 4 行可以简化为 path_name2 = os.path.dirname(__file__)
。显然,代码的第 3 行可以表示为 path_name1 = os.path.abspath(path_name2)
(现在让我们忽略执行顺序)。
接下来要看dirname
做了什么。事实上,您可以将 dirname
视为 os.path.split
的包装器,它将路径分成两部分:(head, tail)
。 tail
是给定路径的最后一部分,head
是给定路径的其余部分。因此,path_name2
只是包含加载文件的目录路径。此外,path_name2
是绝对路径。因此 os.path.abspath(path_name2)
与 path_name2
相同。因此,path_name1
与 path_name2
相同。
关于python - os.path.abspath 与 os.path.dirname,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46817368/
我知道 abspath 可以获取一个文件或一组相关文件,并通过在当前目录前添加它们来为它们创建完整路径,如以下示例所示: >>> os.path.abspath('toaster.txt.') 'C:
我目前正在从头开始构建 WordPress 主题,作为“在工作中学习”的一种方式。我在后端工作方面的经验一般,尽管过去我一直非常依赖 PageBuilders。我现在希望创建一个没有任何 Pagebu
鉴于此代码: function main() println("hello") end if abspath(PROGRAM_FILE) == @__FILE__ main() end
我一直在尝试在同一服务器上创建自定义 WP/WooCommerce 网站的虚拟副本。 我已成功将文件移动到子域并创建了临时数据库副本并更新了 wp_config 文件,但我无法弄清楚如何设置 ABSP
通过阅读 stackoverflow 我发现 __file__ 是从中加载模块的文件的路径名,如果它是从文件加载的话 这行代码有什么原因吗? os.path.abspath(__file__) 文档指
也许这个问题很明显,所以请原谅。 我想执行shell命令(Windows 8.1,Python 3.4)来打开带有SVG文件的IE。我这样做是这样的: # imgpath = 'C:/Users/Vl
运行 cygwin perl 时,有没有办法从 cygwin 路径获取 DOS 绝对路径? 理想情况下,它还可以解析 cygwin 符号链接(symbolic link)。 例如。: '/cygdri
我正在尝试在 foldersystem 中使用 os.walk() 找到几个 'my_file.bat',如果文件名匹配它应该用 subprocess.call() 或 .run() 调用。问题是 o
如果我有这样的结构: root/ -- group1/ ---- names/ ---- places/ ------ foo.zip 为什么当我调用 os.path.abspath('foo.zip
我正在尝试将相对路径扩展为绝对路径。相对路径有时会包含一个 . ,它需要从当前工作目录中扩展出来。我想知道 Python 中的任何标准函数是否接受 cwd kwarg,就像 subprocess.po
我不认为我遗漏了什么。话又说回来,我还是个新手。 def GET(self, filename): name = urllib.unquote(filename) full = pat
我有以下包含文件绝对目录的字符串。 'D:\Sample\Project\testXcl\data.xlsx' 将其传递给 os.path.abspath 后,我得到以下结果: 'D:\\Sample
假设文件“file1.txt”的路径是 /home/bentley4/Desktop/sc/file1.txt假设我当前的工作目录是 /home/bentley4 import os os.path.
它们在字符串值上是相等的,但它们真的相等吗?发生了什么事? import os path_name1 = os.path.abspath(os.path.dirname(__file__)) path
我想知道 python 脚本的绝对路径,然后执行以下步骤。 通过 py_compile 将其构建为字节码。 执行它来检查绝对路径。 但是当我执行它时,我得到了2个结果。我发现基于脚本路径的结果后跟py
我在运行 python 脚本(由 ./waf --run 调用)时遇到此错误:TypeError: abspath() 恰好接受 1 个参数(给定 2 个) 问题是它确实被调用了:obj.path.a
在多个开源项目中,我见过有人用os.path.abspath(os.path.realpath(__file__))来获取当前文件的绝对路径。 但是,我发现 os.path.abspath(__fil
我正在使用 os 模块在我的 Django 项目 settings.py 文件中具有相对路径。变量 SITE_ROOT 设置为 settings.py 文件的当前工作目录,然后用于引用同样位于同一目录
在 Python 中,如果路径中包含“~”,我能否确定扩展的用户调用将是绝对路径? 例如,这个表达式是否总是为真? path = '~/.my_app' os.path.expanduser(path
我是 Django 项目的初学者。Django 项目的 settings.py 文件包含这两行: BASE_DIR = os.path.dirname(os.path.dirname(os.path.
我是一名优秀的程序员,十分优秀!