首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将WindowsPath转换为PosixPath

将WindowsPath转换为PosixPath
EN

Stack Overflow用户
提问于 2019-02-13 13:28:29
回答 2查看 12.8K关注 0票数 11

我使用pathlib来管理我的Python项目中的路径,使用Path类。

当我使用Linux时,一切都很好。但在Windows上,我有个小问题。

在代码中的某个时候,我必须编写一个JavaScript文件,其中列出了对其他几个文件的引用。这些路径必须以POSIX格式编写。但是当我在Windows上执行str(my_path_instance)时,路径是用Windows格式编写的。

你知道用WindowsPathPosixPath转换成pathlib的简单方法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-13 14:08:05

路径库有一个从方法到POSIX路径转换的:

代码语言:javascript
代码运行次数:0
运行
复制
pathlib.path(r'foo\bar').as_posix()

除此之外,您通常可以通过调用适当的构造函数来构造特定于系统的路径。文件说明

在Unix上运行时不能实例化WindowsPath,但可以实例化PureWindowsPath。反之亦然

因此,使用Pure*类构造函数:

代码语言:javascript
代码运行次数:0
运行
复制
str(pathlib.PurePosixPath(your_posix_path))

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

代码语言:javascript
代码运行次数:0
运行
复制
>>> str(pathlib.PurePosixPath(r'a\b'))
'a\\b'

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

代码语言:javascript
代码运行次数:0
运行
复制
>>> pathlib.PureWindowsPath(r'a\b').as_posix()
'a/b'
票数 22
EN

Stack Overflow用户

发布于 2019-02-13 16:54:56

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54671385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档