【发布时间】:2022-11-16 23:43:21
【问题描述】:
我在 Windows 上运行 Python 3.9。我有一个绝对的 Posix 路径,例如: '/c/Program Files/clang-format' 我碰巧通过运行 os.system('which clang-format') 获得了这个,但没关系。
我想将其转换为 Windows 路径,以便我可以调用 os.system(path_to_exe)。我不知道它为什么给我 Posix 路径,但它不能使用 Posix 路径。但是无所谓。
我找不到任何与 .as_posix() 函数等效的函数,用于将路径从 Posix 转换为 Windows。我应该怎么办?请注意,它不像用反斜杠替换正斜杠那么简单(这在现代 Windows 中是不必要的)因为这些是绝对路径,所以需要在其中添加 C:。
【问题讨论】:
-
将
/c/替换为C:/怎么样? -
Windows 中默认不存在“which”命令。你在使用 MinGW 吗?在 MinGW 中,路径是这样表示的(例如
/c/文件夹而不是C:/驱动器) -
os.system('/c/Program Files/clang-format --version')会引发错误吗? -
是的,该命令会引发错误:“系统找不到指定的路径。”如果我将它更改为 'C:/Pro...' 那么错误是“'C:/Program' 未被识别为内部或外部命令,...”因此将 '/c' 更改为 'C:/ ' 由于空格而不足。为什么 pathlib 中没有 as_windows() 函数?似乎是明显而明显的不对称。
-
我正在使用 git bash,我认为它可能基于 MinGW。当然,这就是为什么它在“which”命令中为我提供了一个 Posix 路径。但它不会在 clang-format 命令中接受 Posix 路径。这真是太蹩脚了!