gpt4 book ai didi

python - 将 WindowsPath 转换为 PosixPath

转载 作者:行者123 更新时间:2023-12-03 11:04:59 40 4
gpt4 key购买 nike

我正在使用 pathlib 使用 Path 类管理我的 Python 项目中的路径。
当我使用 Linux 时,一切正常。但是在 Windows 上,我有一个小问题。
在我的代码中的某个时刻,我必须编写一个 JavaScript 文件,其中列出了对其他几个文件的引用。这些路径必须以 POSIX 格式编写。但是当我在 Windows 上做 str(my_path_instance) 时,路径是用 Windows 格式写的。
您知道使用 WindowsPathPosixPath 转换为 pathlib 的简单方法吗?

最佳答案

pathlib 有一个 as_posix method 可以从 Windows 转换为 POSIX 路径:

pathlib.path(r'foo\bar').as_posix()
除此之外,您通常可以通过调用适当的构造函数来构造特定于系统的路径。 The documentation states

You cannot instantiate a WindowsPath when running on Unix, but you can instantiate PureWindowsPath. [or vice versa]


所以使用 Pure* 类构造函数:
str(pathlib.PurePosixPath(your_posix_path))
然而,如果 your_posix_path 包含反斜杠,这不会做你想要的,因为就 POSIX 而言, \(= Windows 路径分隔符)只是一个常规字符。因此 a\b 是有效的 POSIX 文件名,而不是表示目录 b 内的文件 b 的路径,并且 PurePosixPath 将保留这种解释:
>>> str(pathlib.PurePosixPath(r'a\b'))
'a\\b'
要将 Windows 转换为 POSIX 系统上的 POSIX 路径,请使用 PureWindowsPath 类并通过 as_posix 进行转换:
>>> pathlib.PureWindowsPath(r'a\b').as_posix()
'a/b'

关于python - 将 WindowsPath 转换为 PosixPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54671385/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com