Я занимаюсь разработкой двух простых Python приложений для своей супруги (на Raspberry Pi 4+ с 7-дюймовым сенсорным экраном). Радио Inte rnet все еще работает стабильно и нормально.
Теперь это время добавить приложение для ее старых коллекций аудио CD. Но до сегодняшнего дня я не могу решить эту проблему.
Я хочу знать, сколько треков на нем, так что я могу выбрать один для воспроизведения.
Моя последняя надежда состояла в том, чтобы сделать это с помощью команды оболочки. Конечно, команда прекрасно работает в среде UNIX, но не в Python. И я не понимаю, какую ошибку я допустил. Может ли это быть Проблема метода .decode('UTF-8')
Меня удивляет, что через несколько секунд после выполнения command_2 cdrom начинает работать на несколько секунд. Но такое же поведение при использовании команды в командной строке. Во время команд это вполне.
Если бы был кто-то с полезной идеей / решением или мог бы сказать мне, какое у меня недопонимание, это было бы очень приятно.
import subprocess
from subprocess import PIPE
command_1 = ("ls", "-l")
result = subprocess.run(command_1, stdout=PIPE, stderr=PIPE)
out = result.stdout
err = result.stderr
for line in out.decode('utf-8').splitlines():
print("Result", line)
# up to here everything works nice as expected
# trying to run my favorite, I come into trouble
command_2 = ["cdparanoia", "-sQ"]
result = subprocess.run(command_2, stdout=PIPE, stderr=PIPE)
out = result.stdout
err = result.stderr
for line in out.decode('utf-8').splitlines():
print("Result", line)
Вывод команды command_1 - это хорошо известное xample вы найдете везде.
Вывод command_2
/home/pi/PycharmProjects/cd/venv/bin/python /home/pi/PycharmProjects/cd/cdrom.py
Process finished with exit code 0
Это выглядит не очень информативно для меня.
Запуск command_2 в командной строке показывает, что у меня будет Ожидается:
pi@raspberrypi:~ $ cdparanoia -sQ
cdparanoia III release 10.2 (September 11, 2008)
Table of contents (audio tracks only):
track length begin copy pre ch
===========================================================
1. 22190 [04:55.65] 55 [00:00.55] no no 2
2. 11350 [02:31.25] 22245 [04:56.45] no no 2
3. 20567 [04:34.17] 33595 [07:27.70] no no 2
4. 23500 [05:13.25] 54162 [12:02.12] no no 2
5. 16985 [03:46.35] 77662 [17:15.37] no no 2
6. 27358 [06:04.58] 94647 [21:01.72] no no 2
7. 15880 [03:31.55] 122005 [27:06.55] no no 2
8. 38797 [08:37.22] 137885 [30:38.35] no no 2
9. 11043 [02:27.18] 176682 [39:15.57] no no 2
TOTAL 187670 [41:42.20] (audio only)
pi@raspberrypi:~ $
Чтобы опередить вопрос: 10
cdparanoia -sQ > file.txt
не работает даже в командной строке. Может быть, есть причина для имени команды cdPARANOIA? ?