2012-12-08 81 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

相关问题