Заменить одну или несколько подстрок из нескольких имен файлов в папке

У меня есть список файлов, для которых я хотел бы заменить подстроку в своем имени. 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]
Другие вопросы по тегам