0

私は次のようなフォルダシステムを持っています:

    • ミックステープ 1
      • mp3
      • サブディレクトリ/
        • mp3
    • ミックステープ 2
      • mp3
      • サブディレクトリ/
        • mp3
    • ミックステープ 3
      • mp3
      • サブディレクトリ/
        • mp3

すべての 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 関数を変更するにはどうすればよいですか?

4

2 に答える 2