从文件夹中的多个文件名替换一个或多个子字符串

时间:2016-10-15 18:24:21

标签: pandas glob renaming

我有一个文件列表,我想在其名称中替换一个子字符串。 glob.glob(path)返回:

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

其中Joe_Black应成为Joe-Black。 我必须对其他名称做同样的事,例如Tim_Blue变为Tim-Blue等 (我可以将所有这些收集到names=[Joe_Black, Tim_Blue ...]吗?)

我在网上找到了多种方法,但最好的做法是什么呢?

1 个答案:

答案 0 :(得分: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]