【问题标题】:Cross-platform way to convert filepath to dot notation?将文件路径转换为点符号的跨平台方法?
【发布时间】:2022-01-05 07:32:23
【问题描述】:

如果我有来自模块的文件路径,例如"aaa/bbb/ccc/ddd.py" 如何在 python 中将其转换为 "aaa.bbb.ccc.ddd"?也应该适用于 Windows 路径等。我认为它应该在 pathlib,但找不到任何东西。

【问题讨论】:

  • 您需要处理绝对路径以及相对路径吗? (如果是,怎么做?应该假设包根在哪里?)你需要处理... 吗?您是否需要处理符号链接和/或 Windows 快捷方式?对于相对路径,您是否假设给定路径的开头是包层次结构的根?
  • 如果您的路径如图所示简单,则以斜杠或反斜杠分隔,并以点连接。
  • @KarlKnechtel 所有路径都采用这种(相对)形式,没有...

标签: python filepath


【解决方案1】:

也应该适用于 Windows 路径等。我认为它应该在 pathlib 中,但找不到任何东西。

假设您只需要使用已解析的相对路径(如图所示),并且该路径对您想要的确切包层次结构进行编码:

  • .with_suffix 方法可用于去除pathlib.Path 中的.py
  • .parts 为您提供各个组件,然后您可以加入。

因此:

>>> path = pathlib.Path('aaa/bbb/ccc/ddd.py')
>>> '.'.join(path.with_suffix('').parts)
'aaa.bbb.ccc.ddd'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-12
    • 2014-06-09
    • 2013-01-14
    • 1970-01-01
    • 1970-01-01
    • 2012-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多