回答編集履歴

2 追記

LouiS0616

LouiS0616 score 35028

2017/11/06 23:16  投稿

...あのですね、モジュールには適切な使い方があるってご存知ですか?
ご提示のスクリプト内で二回glob.globを呼んでいますが、
```Python
files = glob.glob(os.path.join(basedir, '*.wav'))
...
  if glob.glob('dog*') == True:
```
filesに格納されているのは真偽値ですか?違いますよね?
[きじねこ - [迷信] コンパイラはプログラマの心を察してくれる](http://www.kijineko.co.jp/tech/superstitions/compiler-is-mind-reader.html)
> 当たり前のことですが、コンパイラは単なるソフトウェアに過ぎません。できることはといえば、プログラム言語の仕様にしたがって、ソースコードを機械的に翻訳することだけです。そうしたコンパイラには、曖昧で複数の意味にとれるコードを見ただけで、それを書いたプログラマの人となりを考慮して判断することなどはできません。言葉足らずのコードを見ただけで、それを書いたプログラマが今抱えている問題を察して処理を補完してくれることもありません。
**状況に応じて都合よく動作が変わることなんて期待してはいけません。**
---
単に文字列がdogから始まるかを知りたいなら、正規表現を使うまでもないです。
先頭三文字をスライスで切り出して'dog'と比較すればよいです。
**追記:ファイル名をフルパスから取得するには、[os.path.basename](https://docs.python.jp/3/library/os.path.html#os.path.basename)を使えばよい。**  
正規表現を用いるにしても、使うべきモジュールはglobではなくreです。
globはあくまでもファイル名を取得するためのもので、その際正規表現を利用できるだけです。
globはあくまでもファイル名を取得するためのもので、その際正規表現を利用できるだけです。
1 追記

LouiS0616

LouiS0616 score 35028

2017/11/06 22:45  投稿

...あのですね、モジュールには適切な使い方があるってご存知ですか?
ご提示のスクリプト内で二回glob.globを呼んでいますが、
```Python
files = glob.glob(os.path.join(basedir, '*.wav'))
...
  if glob.glob('dog*') == True:
```
filesに格納されているのは真偽値ですか?違いますよね?
[きじねこ - [迷信] コンパイラはプログラマの心を察してくれる](http://www.kijineko.co.jp/tech/superstitions/compiler-is-mind-reader.html)
> 当たり前のことですが、コンパイラは単なるソフトウェアに過ぎません。できることはといえば、プログラム言語の仕様にしたがって、ソースコードを機械的に翻訳することだけです。そうしたコンパイラには、曖昧で複数の意味にとれるコードを見ただけで、それを書いたプログラマの人となりを考慮して判断することなどはできません。言葉足らずのコードを見ただけで、それを書いたプログラマが今抱えている問題を察して処理を補完してくれることもありません。
**状況に応じて都合よく動作が変わることなんて期待してはいけません。**
---
単に文字列がdogから始まるかを知りたいなら、正規表現を使うまでもないです。
先頭三文字をスライスで切り出して'dog'と比較すればよいです。
正規表現を用いるにしても、使うべきモジュールはglobではなくreです。
正規表現を用いるにしても、使うべきモジュールはglobではなくreです。
globはあくまでもファイル名を取得するためのもので、その際正規表現を利用できるだけです。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る