2017-08-08 135 views
0
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

歡迎來到StackOverflow。請閱讀並遵守幫助文檔中的發佈準則。 [最小,完整,可驗證的示例](http://stackoverflow.com/help/mcve)適用於此處。在發佈您的MCVE代碼並準確描述問題之前,我們無法爲您提供有效的幫助。 我們應該能夠將發佈的代碼粘貼到文本文件中,並重現您描述的問題。 – Prune

回答

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'):看起來應該不存在。

+0

當我使用你的方法時,我得到一個.DS_store密鑰錯誤。我的視頻格式化爲「Episode 1.mkv」 –

+0

@JulianL更新了我的錯誤處理答案 – Milk

+0

我使用過它,並表示它找不到這些文件。然而目錄是正確的,文件在那裏....我檢查使用os.getcwd(),我在正確的目錄.... –