2012-12-08 85 views
0

所以我終於開始編寫我的第一個程序,除了一件事以外,一切都很順利。獲取一個unicode輸入,需要它是一個字符串

在下面的代碼中,我讓用戶傳入一個目錄的路徑。我期待這是一個字符串,但得到一個錯誤後,我設法找到源。這個問題呢?我得到了unicode,當它用來獲取目錄中的文件列表時,它似乎正在導致錯誤。

print "Hello Welcome to my little Porgram" 
print "I need a little information to rename the files" 
usd=getuserin("What is the file path to the files that you wish to rename?") 
print "Thank you for chosing a directory path" 
print "The directory path you chose was:" + " " + usd 
mainname=getuserin("What is the name of the TVshow/Anime/Other thing? ") 
print "Okay so its called" + " " + mainname 
print "Okay I'll start renaming right away" 
renamefiles(usd, mainname) 

第三行是返回的Unicode的一個,基本上它是所有的raw_input通過獲取輸入()。這是在鍵入的目錄去下面這樣:

def renamefiles(directory, Mainname) : 
    os.chdir(directory) 
    files=os.listdir 
    for elem in files: 

現在,我可能只是誤解的錯誤意味着什麼,因爲這基本上是我第一次編程什麼,但我認爲我已經找到了正確的錯誤。

TypeError: 'builtin_function_or_method' object is not iterable 

任何幫助非常非常讚賞

+2

爲什麼不告訴我們實際的錯誤是什麼? –

+0

您可以發佈實際錯誤,以及發生錯誤的地方。你發佈的代碼實際上並沒有使用你的名字,除非你重新輸入了你的代碼,我會指出你實際上沒有調用'os.listdir'。 – Duncan

+0

我發佈的代碼行是根據錯誤輸出發生的錯誤周圍的線我得到 – MrSquirreleo

回答

3

我不知道爲什麼你認爲這有什麼用Unicode或字符串。錯誤消息非常明確:您試圖遍歷實際的函數對象,而不是函數的結果。這是因爲你實際上沒有,這叫os.listdir:你剛剛設置了files這個函數本身。要調用函數,總是使用圓括號:

files = os.listdir() 

將來,還請包括您獲得的任何回溯。這對調試至關重要。

+0

謝謝,我仍然在學習所有這些東西,所以我有點困惑 – MrSquirreleo

相關問題