【问题标题】:Go up a directory using \.. in string path - Python os.path在字符串路径中使用 \.. 上一个目录 - Python os.path
【发布时间】:2022-01-12 22:53:30
【问题描述】:

我正在为 Thinkbox Deadline 编写一份工作后脚本。我需要完成 Cinema 4D 作业的渲染帧的目录。

在 Cinema 中,我们让帧知道上几个目录,然后使用“path\to\c4d_file..\..\renders\frame_00.png”这样的语法返回到不同的位置

在本例中,“\..”告诉 Cinema 向上 2 个文件夹到“path”文件夹,然后返回到“renders”文件夹,将渲染保存到该文件夹​​。

很遗憾,Deadline 在进行渲染作业时并未计算实际路径。当我告诉 post-job 脚本去路径位置时,它不理解 '\..' - 所以我需要告诉它在哪里上一个目录以及从哪里返回。

有没有什么 Python 魔法基本上可以读取“\..”并知道如何创建正确的目录?

谢谢

【问题讨论】:

  • 你做了哪些实际代码来尝试使用..
  • 我刚刚更新了我的帖子——没有意识到 SO 会在没有反斜杠的情况下格式化“\..”。但是要澄清“\..”是Cinema 4D的语法向上1个目录,而“\..”之后的路径将返回您指定的目录。我遵循了 Yohann 在回复中的建议并得到了我需要的东西,谢谢。
  • 请提供足够的代码,以便其他人更好地理解或重现问题。
  • 这是我所做的工作的一个例子: import os path = r"path\to\folder\..\..\new\location" new_path = os.path.abspath(path ) print(new_path) #path\new\location

标签: python directory operating-system parent os.path


【解决方案1】:

取绝对路径,去掉最后一个

path.sep.join(path.abspath('.').split(path.sep)[:-1])

【讨论】:

  • 第一部分解决了我需要的问题。我认为我需要的只是使用 os.path.abspath(path_var) 使路径字符串删除多个“\..”。其余的很高兴知道以备将来使用,非常感谢!
猜你喜欢
  • 2011-06-24
  • 1970-01-01
  • 1970-01-01
  • 2019-11-02
  • 2023-02-10
  • 1970-01-01
  • 2016-09-19
  • 2016-08-04
  • 1970-01-01
相关资源
最近更新 更多