Для игры с системными процессами вы можете использовать Подпроцесс и Popen .
Затем для обмена данными между процессами вы можете использовать ТРУБА .
Примеры кодов также предоставляются здесь
Вот простая реализация:
p1.py
import subprocess
proc = subprocess.Popen(['python', 'temp2.py'], stdin=subprocess.PIPE ,stdout=subprocess.PIPE)
stdout_value, stderr_value = proc.communicate()
print('\nStdout value' + repr(stdout_value) + '\n')
print('\nStderr value' + repr(stderr_value) + '\n')
Этот код вызывает программу temp2.py
temp2.py
import subprocess
proc = subprocess.Popen(['ls'], stdin=subprocess.PIPE ,stdout=subprocess.PIPE
, stderr=subprocess.PIPE)
stdin_value, stdout_value = proc.communicate()
print('\nStdin value' + repr(stdin_value) + '\n')
print('\nStdout value' + repr(stdout_value) + '\n')
temp2.py выполнит команду ls
в вашем текущем каталоге и сохранит результат.
Чтобы получить более подробную информацию о том, как использовать сохраненное значение из каналов, отметьте здесь существует множество вариантов использования системного ввода, и это зависит от вашей реализации, поэтому обратитесь к приведенным выше документам для получения дополнительной помощи.