簡體   English   中英

使用 Python 如何根據匹配的部分替換路徑的一部分?

[英]With Python how can I replace part of a path based on a piece that matches?

我的路徑看起來像: data/dev-noise-subtractive-250ms-1/1988/24833/1988-24833-0013.flac

我想要做的是替換第二部分,使其成為data/dev-clean/1988/24833/1988-24833-0013.flac 我不能保證第二部分的任何內容,除了它以dev-開頭。

我需要使它通用,以便它可以與任何任意詞干一起使用,例如train-等等。

您可以使用re來匹配和替換它:

def func(pattern, file):
    return re.sub(f'{pattern}[^/]+/', f'{pattern}clean/', file)


func('dev-', 'data/dev-noise-subtractive-250ms-1/1988/24833/1988-24833-0013.flac')
#data/dev-clean/1988/24833/1988-24833-0013.flac
func('train-', 'data/train-noise-subtractive-250ms-1/1988/24833/1988-24833-0013.flac')
#data/train-clean/1988/24833/1988-24833-0013.flac
func('train-', 'data/xxx/xxx/train-noise-subtractive-250ms-1/1988/24833/1988-24833-0013.flac')
#data/xxx/xxx/train-clean/1988/24833/1988-24833-0013.flac
def replace_second_part(path, with_what):
    parts = path.split('/')
    parts[1] = with_what
    return '/'.join(parts)

如果您希望它更便攜(例如,在 Windows 下工作)使用os.path是首選。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM