尝试通过使用其名称迭代字典来重命名文件

时间:2017-08-08 23:09:54

标签: python python-3.x loops dictionary file-rename

import os

os.chdir('/Users/julianl/Desktop/Rick and Morty Season 1')
names = {'1' : 'Pilot', '2' : 'Lawnmower Dog',  '3' : 'Anatomy Park',  '4' : 'M. Night Shaym-Aliens!',  '5' : 'Meeseeks and Destroy', '6' : "Rick Potion #9", '7' : "Raising Gazorpazorp", '8' : "Rixty Minutes", '9' : "Something Ricked This Way Comes", '10' : "Close Rick-counters of the Rick Kind", '11' : "Ricksy Business"}

i = 0
root = os.getcwd()
for filename in os.listdir('.'):
        for name in names:
        os.rename(os.path.join(root, filename), os.path.join(root, 'Episode {} {}.mkv').format(i, name))

    i += 1

你好,我是python程序的新手,我试图通过添加可以在我制作的字典中找到的剧集名称来重命名文件夹中的文件。我需要帮助迭代它并将这些值放在我创建的name变量中。

1 个答案:

答案 0 :(得分:0)

您想使用剧集名称(我假设是文件名)来访问字典。

由于您想使用名称(而不是数字)查找剧集名称,您应该翻转字典键和值:

names = {'1' : 'Pilot', '2' : 'Lawnmower Dog', ...变为names = {'Pilot': '1', 'Lawnmower Dog': '2', ...

而不是for name in names:尝试:

try:
    name = names[filename]
except KeyError:
    # Filename was not found. Skip
    print("Filename "+filename+" not found")
    continue

根据文件名的格式化,这可能不会出现。我目前无法从您的问题中说出这一点。

同样if filename.startswith('E'):看起来不应该在那里。