Здесь есть еще одно отличие, которое ранее не упоминалось.
subprocess.Popen
выполняет как подпроцесс. В моем случае мне нужно выполнить файл , который должен взаимодействовать с другой программой, .
Я попробовал подпроцесс, и выполнение прошло успешно. Однако не может связаться с .
Все нормально, когда я запускаю оба из терминала.
Еще один:
(ПРИМЕЧАНИЕ: kwrite ведет себя не так, как другие приложения. Если вы попробуете описанное ниже с Firefox, результаты будут не такими.)
Если вы попробуете os.system("kwrite")
, поток программы остановится, пока пользователь не закроет kwrite. Чтобы преодолеть это, я попытался вместо этого os.system(konsole -e kwrite)
. На этот раз программа продолжала работать, но kwrite стал подпроцессом консоли.
Любой, кто запускает kwrite, не будучи подпроцессом (т. Е. В системном мониторе, он должен появляться у самого левого края дерева).