どのバージョンの python を使用していますか? これが過去に変更されたかどうかはos.walk
わかりませんが、最初のタプルとして「サブディレクトリ」を返すのではなく、dirpath を返します。Python 3.6については、こちらを参照してください。
絶対パスはわかりませんが、パスsound
を相対参照として渡しているので、Pythonコードを実行するディレクトリ内のフォルダーであると想定しています。たとえば、このファイルを実行しているとしましょう (mycode.py と呼びましょう)。
/home/username/myproject/mycode.py
そして、いくつかのサブディレクトリがあります:
/home/username/myproject/sound/
そう:
resultsDirectory = subdirs + '/MFCC/'
上記のコードに書かれているように、次のように解決されます。
/home/username/myproject/sound/MFCC/
これは既存のディレクトリではないため、最初の if ステートメントが入力されます。これにより、新しいディレクトリを作成します。
/home/username/myproject/sound/MFCC/
そこから、あなたは取る
filename in os.listdir(subdirs)
これも、この関数の出力に対する誤解のようです。os.listdir()
ファイルではなくディレクトリを返します。その男性については、こちらを参照してください。
したがって、次のディレクトリをループしています。
/home/username/myproject/sound/
ここでは、ダイアグラムのいくつかのディレクトリが既に作成されていると仮定します。だから私はあなたが持っていると仮定します:
/home/username/myproject/sound/machine_sound
/home/username/myproject/sound/gun_shot_sound
またはそれらの線に沿った何か。
したがって、ディレクトリ名が「.wav」で終わらないため、if ステートメントは入力されません。
入ったとしても、実際には最初のループと2回目のループでfilename
等しいので、まだ問題があります。machine_sound
gun_shot_sound
他のwav
ライブラリを使用している可能性がありますが、組み込みの python が呼び出され、 ではなくファイルでwave
を呼び出す必要があります。ドキュメントについては、こちらを参照してください。 wave.open()
wav.read()
の呼び出しで何を達成しようとしていたのかはわかりませんが、ここos.path.splitext(filename)[0]
でそれについて読むことができます。ただし、この場合に行ったのと同じことになります。machine_sound
gun_shot_sound
したがって、出力ファイルは次のようになります。
/home/username/myproject/sound/MFCC/machine_sound.csv
最初のループで、そして
/home/username/myproject/sound/MFCC/gun_shot_sound.csv
2回目。
結論として、「MFCC フォルダーが既に形成された MFCC フォルダーに形成され続ける」と言うとき、何が起こっているのかわかりませんが、自分のコードを理解する前に多くのことを読んで、希望を持っていることは間違いありません。あなたが望むことをするためにそれを修正すること。私が提供したリンクを読んでいると仮定すると、それができるはずです。幸運を!
さらに、私が編集したコードには、非常に重要な空白文字を含むタイプミスがほとんどありませんでした。ここに投稿する前に、それをクリーンアップしてコードが実行されることを確認してから、コピー/貼り付け操作でエラーが発生していないことを再確認してください。プレゼンテーションを少し整理すれば、人々はもっと喜んで助けてくれるでしょう。