[英]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.