gra*_*lle 6 python windows posix pathlib
我正在使用该类pathlib在我的 Python 项目中管理我的路径Path。
当我使用 Linux 时,一切正常。但是在 Windows 上,我有一个小问题。
在我的代码中的某个时刻,我必须编写一个 JavaScript 文件,其中列出了对其他几个文件的引用。这些路径必须以 POSIX 格式编写。但是当我str(my_path_instance)在 Windows 上做的时候,路径是用 Windows 格式写的。
您知道将 a 转换WindowsPath为PosixPathwith的简单方法pathlib吗?
Kon*_*lph 13
pathlib 有一种as_posix方法可以将 Windows 路径转换为 POSIX 路径:
pathlib.path(r'foo\bar').as_posix()
Run Code Online (Sandbox Code Playgroud)
除此之外,您通常可以通过调用适当的构造函数来构造特定于系统的路径。文档指出的是
WindowsPath在 Unix 上运行时不能实例化 a ,但可以实例化PureWindowsPath. [或相反亦然]
所以使用Pure*类构造函数:
str(pathlib.PurePosixPath(your_posix_path))
Run Code Online (Sandbox Code Playgroud)
但是,如果your_posix_path包含反斜杠,这不会做您想要的,因为\(= Windows 路径分隔符) 就 POSIX 而言只是一个常规字符。a\b有效的 POSIX 文件名也是如此,而不是表示目录b内文件的路径b,PurePosixPath并将保留以下解释:
pathlib.path(r'foo\bar').as_posix()
Run Code Online (Sandbox Code Playgroud)
要将 Windows 转换为 POSIX 系统上的POSIX 路径,请使用PureWindowsPath该类并通过as_posix以下方式转换:
str(pathlib.PurePosixPath(your_posix_path))
Run Code Online (Sandbox Code Playgroud)