我使用pathlib
来管理我的Python项目中的路径,使用Path
类。
当我使用Linux时,一切都很好。但在Windows上,我有个小问题。
在代码中的某个时候,我必须编写一个JavaScript文件,其中列出了对其他几个文件的引用。这些路径必须以POSIX格式编写。但是当我在Windows上执行str(my_path_instance)
时,路径是用Windows格式编写的。
你知道用WindowsPath
将PosixPath
转换成pathlib
的简单方法吗?
发布于 2019-02-13 14:08:05
路径库有一个从方法到POSIX路径转换的:
pathlib.path(r'foo\bar').as_posix()
除此之外,您通常可以通过调用适当的构造函数来构造特定于系统的路径。文件说明说
在Unix上运行时不能实例化
WindowsPath
,但可以实例化PureWindowsPath
。反之亦然
因此,使用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路径,请使用PureWindowsPath
类并通过as_posix
进行转换
>>> pathlib.PureWindowsPath(r'a\b').as_posix()
'a/b'
发布于 2019-02-13 16:54:56
如果您想在Unix机器上操作路径库(反之亦然)--在Unix上运行时不能实例化WindowsPath,但可以实例化PureWindowsPath/PurePosixPath
。
https://stackoverflow.com/questions/54671385
复制相似问题