将WindowsPath转换为PosixPath

ctrmrzij  于 2023-04-22  发布在  Windows
关注(0)|答案(2)|浏览(80)

我使用pathlib来管理我的Python项目中的路径,使用的是Path类。
当我使用Linux时,一切都很好。但是在Windows上,我有一个小问题。
在我的代码中,我必须编写一个JavaScript文件,其中列出了对其他几个文件的引用。这些路径必须以POSIX格式编写。但是当我在Windows上执行str(my_path_instance)时,路径以Windows格式编写。
你知道一个简单的方法来转换一个WindowsPath到一个PosixPathpathlib

olhwl3o2

olhwl3o21#

pathlib有一个as_posix方法来将Windows路径转换为POSIX路径:

pathlib.path(r'foo\bar').as_posix()

除此之外,通常可以通过调用相应的构造函数来构造系统特定的路径。
在Unix上运行时不能示例化WindowsPath,但可以示例化PureWindowsPath
所以使用Pure*类构造函数:

str(pathlib.PurePosixPath(your_posix_path))

但是,如果your_posix_path包含反斜杠,这将无法满足您的要求,因为\(= Windows路径分隔符)对于POSIX来说只是一个常规字符。因此a\b是有效的POSIX文件名,* 而不是 * 表示目录b中的文件b的路径,并且PurePosixPath将保留此解释:

>>> str(pathlib.PurePosixPath(r'a\b'))
'a\\b'

要将Windows路径转换为POSIX路径,请使用PureWindowsPath类并通过as_posix进行转换:

>>> pathlib.PureWindowsPath(r'a\b').as_posix()
'a/b'
nc1teljy

nc1teljy2#

Pythonpathlib如果您想在Unix机器上操作Windows路径(反之亦然)-在Unix上运行时不能示例化WindowsPath,但可以示例化PureWindowsPath/PurePosixPath
.

相关问题