Задать вопрос
Keste
@Keste
test1

Python 3 как не выводить в консоль операции с модулями os, sys, subprocess?

Один из примеров кода который я выполняю но не хочу чтобы выводило что либо в терминал:
def j_say(phrase):
    os.system('curl "https://tts.voicetech.yandex.net/generate?format=wav&lang=ru-RU&speaker=zahar&emotion=good&key=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -G --data-urlencode "text=' + phrase + '" > j_speech.wav')
    os.system('aplay j_speech.wav')

А выводит вот это:
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  133k    0  133k    0     0   496k      0 --:--:-- --:--:-- --:--:--  496k
Воспроизведение WAVE 'j_speech.wav' : Signed 16 bit Little Endian, Частота 48000 Гц, Моно


Спасибо!
  • Вопрос задан
  • 2847 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
chupasaurus
@chupasaurus
Сею рефлекторное, злое, временное
os, sys, subprocess

Смешали в кучу коней и людей. Вывод команд, запущенных через subprocess, контролируется через параметры stderr/stdout конструктора класса Popen, просто по умолчанию вывод будет объединён с основной программой.
Учитесь читать документацию.
Ответ написан
@RamzanKadyrovPWNZ
Попробуй так.
Подпили под себя, почитай про subprocess. Там дока понятная.
import os,sys,subprocess


def j_say(phrase):
	
    arg = subprocess.Popen(['curl','--basic','pornhub.com'],stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
    return arg.stdout.read().decode("cp866")


print(j_say(('abr')))

Убери print() и вывод в терминал пропадёт.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы