2011-01-30 6 views
-1

私はPythonでファイルブラウザを作っていますが、コードが正しく動作しません。私のコードを見て、あなたが問題を特定できるかどうか教えてください。Pythonのファイルブラウザ

from os import * 
a=raw_input("what is my file?") 
b=raw_input("home or media?") 
c=[] 
d=[] 
def fafaBrowser(): 

    if b=="home": 
     c.append("/home/farbod") 
    if b=="media": 
     c.append("/media/farbod") 

fafaBrowser() 

def fafaBrowser2(): 
    for k in range(len(c)): 
     for i in range(len(listdir(c[k]))): 
      if a==listdir(c[k])[i]: 
       print True 
       d.append(1) 
      else: 
       i=+1 
     if d==[]: 
     #c.append(listdir(c[0])) 

      for j in range(len(listdir(c[k]))): 
       c.append(listdir(c[k])[j]) 
      #c.pop(k) 
      fafaBrowser2() 



fafaBrowser2() 
+2

SOは質問をする場所で、「自分のコードを修正する」というのは本当に1つではありません。あなたは、あなたが何を期待しているのか、そしてあなたが何を期待しているのか、その期待に応えられないことについて、もっと教えてくれますか?それとも何か他の方法であなたが助けを必要としているものを絞り込みますか? –

+0

faqを読む必要があります質問の種類を調べるには –

答えて

2

私は、コードが行うことになっているものはかなりがわからないので、私はそこに助けることができません。

編集:私はあなたがfafaBrowser2は、各サブディレクトリに再帰その後、自宅やメディアのディレクトリを検索して挿入したファイルの場所を見つけたいとします。 Pythonのglobモジュールまたは機能を使用してください。

しかし、あなたはPythonで見なければならないいくつかのスタイルの問題があります:彼らは短い名前を持っている場合

まず第一に、あなたはグローバル変数、特にを避ける必要があります。 (私はこれが初期のコードでなければならないことを認識していますが、それでも...)

​​ではなくimport osを使用してください。

if __name__=="__main__"ブロック内のスクリプトの "身体" を入れてください:

if __name__=='__main__': 
    a=raw_input("what is my file?") 
    b=raw_input("home or media?") 
    ... 

fafaBrowserは(再び、グローバル可変状態を避けるため)引数としてBを受け入れ、Cを返す必要があります:

def fafaBrowser(location): 
    c=[] 
    if location == 'home': 
     c.append(...) 
    ... 
    return c 

次に:

c = fafaBrowser(b) # rename these variables sometime 

fafaBrowser2

Do for k in range(len(c))インデックスが不要な場合:for location in c:他のループも同様です。また、fafaBrowser2が何をすべきかを知ることは困難です。

編集:他のいくつかの問題:Pythonで空のリストがFalseブールあるので

if d == []: 

if not d: 

でなければなりません。

あなたは、このコードでやっているように、インデックスを自分でインクリメントしないでください。

else: 
    i+=1 

はちょうどそれを脱ぎます。

+0

このコードを書く目的は1つのディレクトリ内のファイルを検索することですが、プログラムがディレクトリを見つけてサブディレクトリに入力する際に​​エラー "再帰深さ "と私はそれは私の悪いアルゴリズムとglobモジュールのためのものですこの状況のた​​めに非常に悪いです.i時間を無駄にしないで、あなたの助けに感謝して良いアルゴリズムをしたい – fafa

+0

私は言ったように' os.path.walk'を使用してください。 –

関連する問題