2017-06-06 3 views
-3

これらのフォルダ内にフォルダとイメージを持つリポジトリがあります。要点は、このメソッドos.removeがどのように機能するかを理解できないことです。いくつかのフォルダでは不要なファイルを削除しますが、一部のフォルダではサイズが小さくなり(10-15画像)、一部では縮小されないものもあります。私はここで何が欠けていますか?誰かがなぜos.removeが正しく動作しないのか説明できますか?

dirs = next(os.walk(path))[1] 

for d in dirs: 
    dirPath = path + d 
    os.chdir(dirPath) 

    dirPath = path + d 


    files = next(os.walk(dirPath))[2] 

    for f in files: 
     if f is 'feature.bin': os.remove('feature.bin')  
     if f is 'filelist_LBP.txt': os.remove('filelist_LBP.txt') 
     if f is 'info.txt': os.remove('info.txt') 
+0

dirs変数が何かに設定されていることを確認しましたか?子ディレクトリ(つまり、その下にディレクトリがない場合)は、ファイルを一切参照しません。 – TLOwater

+0

また、 "=="を意味するときは "is"を使用した比較は避けてください。詳細については、https://stackoverflow.com/questions/1504717/why-does-comparing-strings-in-python-using-either-or-is-sometimes-produceを参照してください。 – xorsyst

答えて

4

os.remove現在のディレクトリにあることを起こる場合を除き、削除するファイルへのフルパスを必要とします。