python - 当右手边可能是/-前缀时,是否有一种优雅的方式来使用 os.path.join() ?
问题描述
在下面的代码中,context._arguments['ConfigFile']
返回一个类似的字符串'/path/file.py'
(我无法更改),但由于工作方式os.path.join()
,我需要至少删除第一个 /。
注意:在我的用例__file__
中,将始终位于远离配置文件的适当位置。
我也考虑过给它,context._arguments['ConfigFile'][1:]
但我认为它不那么健壮。
config_file = os.path.join(
os.path.dirname(os.path.abspath(__file__)),
*context._arguments['ConfigFile'].split(os.path.sep))
我希望会有一些更优雅的东西,但也许处理路径永远不会。我正在使用 Python 2.7,但为了完整起见,我愿意听取 Python 3 的答案。
解决方案
如果您使用 Python 3,则可以从该pathlib
软件包中受益:
from pathlib import Path
file_path = '/path/file.py'
config_file = Path(__file__).parent / file_path.lstrip('/')
print(config_file)
# /Users/darius/repos/stackoverflow/questions/path/file.py
如果您使用 Python 2,您可以安装pathlib2
( pip install pathlib2
),它是标准pathlib
包的后向端口。要匹配模块名称,您可以使用 重命名导入import pathlib2 as pathlib
。
推荐阅读
- c# - vector3.movetowards 立即移动而不是逐步移动
- spring-boot - Tomcat 总是返回 404
- python - 两个大小不等的数据框之间的文本相似性
- ios - 如何自定义 STPPaymentCardTextField.Representable
- r - 在同一图表中绘制不同年份的不同变量
- amazon-web-services - 将具有特定扩展名的文件从多个 S3 对象移动到另一个 S3 存储桶
- java - PipedWriter 和 PipedReader 在不同的类中使用时返回 NullPointerException
- docker - 创建持久、耐用的“工人箱”Docker 容器
- javascript - 在 vue js 中跳转相同的路线不起作用
- eclipse - 黄瓜测试用例执行后在 Eclipse 中出现奇怪的控制台错误/异常