0

それで、今日ようやく最初のプログラムを書くことができました.1つのことを除いて、すべてが順調に進んでいます.

以下のコードでは、ユーザーにディレクトリへのパスを渡しています。これは文字列であると予想していましたが、エラーが発生した後、ソースを見つけることができました。問題は、ディレクトリ内のファイルのリストを取得するために使用されたときにエラーを引き起こしているように見えるユニコードを取得しています。

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)

3 行目は 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

どんな助けでも大歓迎です

4

1 に答える 1

3

これが Unicode や文字列と関係があるとあなたが考える理由がわかりません。エラー メッセージは非常に明確です。関数の結果ではなく、実際の関数オブジェクトを反復処理しようとしています。これは、実際には を呼び出し ていないためです。関数自体os.listdirに設定しただけです。files関数を呼び出すには、常に括弧を使用します。

files = os.listdir()

今後、取得したトレースバックも含めてください。これはデバッグに不可欠です。

于 2012-12-08T17:45:22.403 に答える