使用python中的列表重命名文件

时间:2014-10-08 19:34:26

标签: python

我有一堆文件,我进入python:

def list_files(path):
    # returns a list of names (with extension, without full path) of all files 
    # in folder path
    files = []
    for name in os.listdir(path):
        if os.path.isfile(os.path.join(path, name)):
            files.append(name)
    return files 

images = list_files('.')

>>> images
['file1.jpg', 'file2.jpg', 'file3.jpg']

我也有一个列表:

>>> b
['ren', 'sans', 'ren']

我不想重命名图像并在b中附加相应的字符串,所以得到:

文件1-ren.jpg
文件2,sans.jpg
file3-ren.jpg

for imgs in images :
    os.rename(imgs,''.join(imgs + b for f in b))

TypeError: cannot concatenate 'str' and 'numpy.ndarray' objects

我觉得这样好吗? 感谢

1 个答案:

答案 0 :(得分:4)

这个想法更像是:

for img, extra in zip(images, b) :
    os.rename(img, ''.join([img, '-', extra, '.jpg'])

但是,这意味着您已从img。

中删除了扩展程序

如果没有,那么:

for img, extra in zip(images, b) :
    filename, extension = os.path.splitext(img)
    os.rename(img, ''.join([filename, '-', extra, extension])