Files
wavinfo/tests/utils.py
T
2026-09-17 10:30:32 -07:00

37 lines
1.1 KiB
Python

import json
import os.path
import subprocess
import sys
from subprocess import PIPE
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)