简体   繁体   English

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

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

My path:我自己的路:

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

I want this to be converted into:我希望将其转换为:

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

How to do this?这该怎么做?

Use os.path.abspath ornormpath to canonicalise the path:使用os.path.abspathnormpath规范化路径:

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

Solution:解决方案:
This code snippet should solve your issue:此代码片段应该可以解决您的问题:

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

Output:输出:

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

this solution is very simple by using Regex.通过使用正则表达式,此解决方案非常简单。
You can use it 're' module of the Python standard library.您可以使用 Python 标准库的“re”模块。

import re

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

I'm sorry not to speak English fluently ;)我很抱歉不会说流利的英语 ;)

Instantiating a pathlib.Path object from your string will remove redundant slashes automatically for you:从您的字符串实例化pathlib.Path对象将自动为您删除多余的斜杠:

from pathlib import Path

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

I think the easiest way is to replace '//' with '/' twice:我认为最简单的方法是将'//'替换为'/'两次:

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

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

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

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