Ваш текущий метод означает, что происходят две вещи:
Вы видите результат подпроцесса
, у процессов может быть несколько выходов, вот два, которые могут произойти:
STDOUT
- информация из выполняемой программы STDERR
- информация об ошибках предупреждений, с которыми столкнулась программа. Вероятно, это то, что вас раздражает. Использование опций в подпроцессе
должно означать, что вы можете направить выходные данные в / dev / null
(т.е. они не будут отображаться в выходных данных):
DEVNULL = open (os.devnull, 'wb')
subprocess.call (['leafpad', filename + '.tsv'], stdout = DEVNULL, stderr = DEVNULL)
Это версия для python 2.4+, бит, определяющий DEVNULL
, может не понадобиться в 3.3+
Обратите внимание, что даже если вы удалите скрытие всего вывода, он все равно будет ждать процесса, поэтому ....
и ожидает завершения процессов перед продолжением
Если вы хотите, чтобы процесс продолжался в фоновом режиме, вы можете использовать это:
subprocess.Popen (['leafpad', filename + '.tsv '])
Popen
не ждет завершения процесса, поэтому он продолжит работу в фоновом режиме (в отличие от call
) - для получения дополнительной информации см. здесь .
Объединение этих «исправлений» должно дать вам:
DEVNULL = open(os.devnull, 'wb')
subprocess.Popen(['leafpad', filename + '.tsv'], stdout=DEVNULL, stderr=DEVNULL)
Снова для python 2.4+
Дополнительную информацию можно найти в документации здесь .
Я любитель Python, чья версия листовой панели
не выдает ошибок, поэтому, если что-то не работает, скажите:)