【发布时间】:2021-02-04 02:36:40
【问题描述】:
我的路径:
'/home//user////document/test.jpg'
我希望将其转换为:
'/home/user/document/test.jpg'
如何做到这一点?
【问题讨论】:
我的路径:
'/home//user////document/test.jpg'
我希望将其转换为:
'/home/user/document/test.jpg'
如何做到这一点?
【问题讨论】:
从您的字符串中实例化 pathlib.Path 对象将自动为您删除多余的斜杠:
from pathlib import Path
path = Path('/home//user////document/test.jpg')
print(path)
# /home/user/document/test.jpg
【讨论】:
这个解决方案使用正则表达式非常简单。
您可以使用 Python 标准库的“re”模块。
import re
old_path = '/home//user////document/test.jpg'
converted_path = re.sub('/+', '/', old_path)
我很抱歉不能说流利的英语;)
【讨论】:
使用os.path.abspath 或normpath 规范化路径:
>>> import os.path
>>> os.path.abspath('/home//user////document/test.jpg')
'/home/user/document/test.jpg'
【讨论】:
解决方案:
此代码 sn-p 应该可以解决您的问题:
import re
x = '/home//user////document/test.jpg'
re.sub('/+','/', x)
输出:
'/home/user/document/test.jpg'
【讨论】:
我认为最简单的方法是将'//' 替换为'/' 两次:
a = '/home//user////document/test.jpg'
a.replace('//', '/').replace('//', '/')
【讨论】:
//////呢?