Files
wavinfo/tests/utils.py
2020-08-14 15:05:32 -04:00

37 lines
1.1 KiB
Python

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)