2016-10-15 12 views
-1

У меня есть список файлов, для которых я хотел бы заменить подстроку в их имени. В glob.glob(path) возвращается:Заменить одну или несколько подстрок из нескольких имен файлов в папке

'./path\\2016_Joe_Black_tall_blond', 
etc. 

где Joe_Black должен стать Joe-Black. Мне нужно было бы сделать то же самое для других имен, например. Tim_Blue становится Tim-Blue и т.д. (я могу собрать всех тех, кто в names=[Joe_Black, Tim_Blue ...]?)

Я нашел несколько подходов в Интернете, но то, что было бы лучше, чтобы это сделать?

ответ

0

Для этой цели вы можете использовать список. В этом примере я просто заменяю _ на -. Примечание. 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]