import os.path import sys import subprocess from subprocess import PIPE import json FFPROBE = "ffprobe" def ffprobe(path): arguments = [FFPROBE, "-of", "json", "-show_format", "-show_streams", path] if int(sys.version[0]) < 3: process = subprocess.Popen(arguments, stdout=PIPE) process.wait() if process.returncode == 0: output = process.communicate()[0] if output: output_str = output.decode("utf-8") return json.loads(output_str) else: return None else: process = subprocess.run(arguments, stdin=None, stdout=PIPE, stderr=PIPE) if process.returncode == 0: output_str = process.stdout.decode("utf-8") return json.loads(output_str) else: return None def all_files(): for dirpath, _, filenames in os.walk("tests/test_files"): for filename in filenames: _, ext = os.path.splitext(filename) if ext in [".wav", ".WAV"]: yield os.path.join(dirpath, filename)