簡體   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