繁体   English   中英

如何用单个斜杠替换目录中的多个正斜杠?

[英]How to replace multiple forward slashes in a directory by a single slash?

我自己的路:

'/home//user////document/test.jpg'

我希望将其转换为:

'/home/user/document/test.jpg'

这该怎么做?

使用os.path.abspathnormpath规范化路径:

>>> import os.path
>>> os.path.abspath('/home//user////document/test.jpg')
'/home/user/document/test.jpg'

解决方案:
此代码片段应该可以解决您的问题:

import re
x = '/home//user////document/test.jpg'
re.sub('/+','/', x)

输出:

'/home/user/document/test.jpg'

通过使用正则表达式,此解决方案非常简单。
您可以使用 Python 标准库的“re”模块。

import re

old_path = '/home//user////document/test.jpg'
converted_path = re.sub('/+', '/', old_path)

我很抱歉不会说流利的英语 ;)

从您的字符串实例化pathlib.Path对象将自动为您删除多余的斜杠:

from pathlib import Path

path = Path('/home//user////document/test.jpg')
print(path)
# /home/user/document/test.jpg

我认为最简单的方法是将'//'替换为'/'两次:

a = '/home//user////document/test.jpg'

a.replace('//', '/').replace('//', '/')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM