Заменить одну или несколько подстрок из нескольких имен файлов в папке
У меня есть список файлов, для которых я хотел бы заменить подстроку в своем имени. glob.glob(path)
возвращает:
'./path\\2016_Joe_Black_tall_blond',
etc.
где Joe_Black
должен стать Joe-Black
, Я должен был бы сделать то же самое для других имен, например Tim_Blue
становится Tim-Blue
и т.д.
(могу ли я собрать все это в names=[Joe_Black, Tim_Blue ...]
?)
Я нашел несколько подходов онлайн, но что было бы лучше всего сделать это?
1 ответ
Вы можете использовать списки для этой цели. В этом примере я просто заменяю _
от -
, Заметка basename
используется для извлечения имени файла, а не его полного пути.
import glob
import os
path = "./data/"
# Make list of paths
names = glob.glob(os.path.join(path, "*"))
# Returning a list of file names (without path) where a character is replaced
names = [os.path.basename(name).replace('_', '-') for name in names]