将 WindowsPath 转换为 PosixPath
Convert WindowsPath to PosixPath
我正在使用 pathlib
使用 Path
class.
来管理我在 Python 项目中的路径
当我使用 Linux 时,一切正常。但是在 Windows 上,我遇到了一个小问题。
在我的代码中的某个时刻,我必须编写一个 JavaScript 文件,其中列出了对其他几个文件的引用。这些路径必须以 POSIX 格式编写。但是当我在Windows上做str(my_path_instance)
时,路径写成Windows格式。
你知道用 pathlib
将 WindowsPath
转换为 PosixPath
的简单方法吗?
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*
class构造函数:
str(pathlib.PurePosixPath(your_posix_path))
但是,如果 your_posix_path
包含反斜杠,这将不会执行您想要的操作,因为 \
(= Windows 路径分隔符)就 [= 而言只是一个常规字符46 =]有关。所以 a\b
是有效的 POSIX 文件名, 不是 表示目录 b
内文件 b
的路径,PurePosixPath
将保留此解释:
>>> str(pathlib.PurePosixPath(r'a\b'))
'a\b'
要将 Windows 转换为 POSIX 路径,请使用 PureWindowsPath
class 并通过 as_posix
:
进行转换
>>> pathlib.PureWindowsPath(r'a\b').as_posix()
'a/b'
Python pathlib 如果你想在 Unix 机器上操作 Windows 路径(反之亦然)——你不能实例化一个 Windows在Unix上运行时的路径,但你可以实例化PureWindowsPath/PurePosixPath
.
我正在使用 pathlib
使用 Path
class.
当我使用 Linux 时,一切正常。但是在 Windows 上,我遇到了一个小问题。
在我的代码中的某个时刻,我必须编写一个 JavaScript 文件,其中列出了对其他几个文件的引用。这些路径必须以 POSIX 格式编写。但是当我在Windows上做str(my_path_instance)
时,路径写成Windows格式。
你知道用 pathlib
将 WindowsPath
转换为 PosixPath
的简单方法吗?
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 instantiatePureWindowsPath
. [or vice versa]
所以使用Pure*
class构造函数:
str(pathlib.PurePosixPath(your_posix_path))
但是,如果 your_posix_path
包含反斜杠,这将不会执行您想要的操作,因为 \
(= Windows 路径分隔符)就 [= 而言只是一个常规字符46 =]有关。所以 a\b
是有效的 POSIX 文件名, 不是 表示目录 b
内文件 b
的路径,PurePosixPath
将保留此解释:
>>> str(pathlib.PurePosixPath(r'a\b'))
'a\b'
要将 Windows 转换为 POSIX 路径,请使用 PureWindowsPath
class 并通过 as_posix
:
>>> pathlib.PureWindowsPath(r'a\b').as_posix()
'a/b'
Python pathlib 如果你想在 Unix 机器上操作 Windows 路径(反之亦然)——你不能实例化一个 Windows在Unix上运行时的路径,但你可以实例化PureWindowsPath/PurePosixPath
.