私は次のようなフォルダシステムを持っています:
- 根
- ミックステープ 1
- mp3
- サブディレクトリ/
- mp3
- ミックステープ 2
- mp3
- サブディレクトリ/
- mp3
- ミックステープ 3
- mp3
- サブディレクトリ/
- mp3
- ミックステープ 1
すべての mp3 ファイルのリストを (サブディレクトリのみから) 作成し、そのリストからランダムな mp3 を再生しようとしています。
だから、私は次のコードを思いついた:
import os
import random
import subprocess
# Set the root dir for mixtapes
rootDir = 'mixtapes'
# Function to make a list of mp3 files
def fileList(rootDir):
matches = []
for mixtape, subdir, mp3s in os.walk(rootDir):
for mp3 in mp3s:
if mp3.endswith(('.mp3', '.m4a')):
matches.append(os.path.join(mixtape, mp3))
return matches
# Select one of the mp3 files from the list at random
file = random.choice(fileList(rootDir))
print file
# Play the file
subprocess.call(["afplay", file])
ただし、このコードはすべての .mp3 または .m4a ファイルを再帰的に取り込みます...それらが「サブディレクトリ」内に含まれている場合にのみ必要です。
では、サブディレクトリ内にある場合にのみ mp3 を追加するように fileList 関数を変更するにはどうすればよいですか?