Openstack DevOps and IBM/Informix Certified DBA . Phd in Math (Duality of spaces of... · 13 сент 2022
Модуль подпроцесса — это рекомендуемый Python способ выполнения команд оболочки. Это дает нам возможность подавлять вывод команд оболочки или связывать входные и выходные данные различных команд вместе, в то же время предоставляя аналогичный os.system() опыт для основных случаев использования.
-rw-rw-r— 1 boris boris 733 сен 13 14:04 argMaximum.py
-rw-rw-r— 1 boris boris 118 сен 13 19:34 cmdRunPython1.py
-rw-rw-r— 1 boris boris 116 сен 13 19:36 cmdRunPython2.py
-rw-rw-r— 1 boris boris 115 сен 13 19:41 cmdRunPython3.py
-rw-rw-r— 1 boris boris 176 сен 13 19:25 cmdRunPython.py
drwxrwxr-x 2 boris boris 4096 сен 13 19:35 COPIES
-rw-rw-r— 1 boris boris 2874 сен 13 12:00 GaussProcessRegr.py
-rwxrwxr-x 1 boris boris 16520 сен 13 19:43 hello
-rw-rw-r— 1 boris boris 111 сен 13 19:43 hello.cpp
-rw-rw-r— 1 boris boris 6123 сен 13 15:46 OptimalBayes1.py
-rw-rw-r— 1 boris boris 3026 сен 13 12:20 OptimalBayes.py
./COPIES:
total 32
-rw-rw-r— 1 boris boris 733 сен 13 19:35 argMaximum.py
-rw-rw-r— 1 boris boris 118 сен 13 19:35 cmdRunPython1.py
-rw-rw-r— 1 boris boris 110 сен 13 19:35 cmdRunPython2.py
-rw-rw-r— 1 boris boris 176 сен 13 19:35 cmdRunPython.py
-rw-rw-r— 1 boris boris 2874 сен 13 19:35 GaussProcessRegr.py
-rw-rw-r— 1 boris boris 6123 сен 13 19:35 OptimalBayes1.py
-rw-rw-r— 1 boris boris 3026 сен 13 19:35 OptimalBayes.py
The exit code was: 0
В первой строке мы импортируем модуль подпроцесса, который является частью стандартной библиотеки Python. Затем мы используем функцию subprocess.run() для выполнения команды. Как и os.system(), команда subprocess.run() возвращает код завершения того, что было выполнено. В отличие от os.system(), обратите внимание, что subprocess.run() требует в качестве входных данных список строк, а не одну строку. Первым элементом списка является имя команды. Остальные элементы списка — это флаги и аргументы команды.
Выполнение бинарного кода сгенерированного g++ используя Пайтон модуль.
Чтобы управлять вводом и выводом с помощьюsubprocess.Popen, нам нужно использовать метод communicate(). В новый файл с именем cat_Popen.pyдобавьте следующий фрагмент кода:
Специалист МГТУ им. Н. Э. Баумана, Информатика и системы управления · 14 сент 2022
Если речь об исполняемом exe-файле/сис-команде, можно попробовать такое:
import os
os.startfile("C:\app.exe")
или
import subprocess
sys_command = "cat test_file.txt"
subprocess.run(sys_command)
Ответы и примеры есть тут и тут. Читать далее
Классику мы ценим за вневременную актуальность. Не все, что хорошо, ново, и не все, что... · 13 сент 2022
По общему подходу задействуется соответствующая схема обращения к компонентам, иначе говоря, объявляется процесс вызова библиотеки.
Ищите виды исключений, обработка завершений и прочие, все то, корректное выполнение чего, говорит о том, что программист уважает пользователя своего продукта.
Пофигист с большим жизненным опытом, обремененный образованием и личной жизнью... ;) · 18 июн 2022
Собственно есть 2 пути. Показываю для linux.
Первый ждет завершения вызываемого кода (текущий поток останавливается), а второй просто открывает его в параллельном процессе (текущий поток продолжает работать и появляется новый процесс в задачах).
Первый использует os
import os
os.system('command')
где command - команда операционной системы… Так можно не только запустить что-то на исполнение, но и выполнить, например, копирование, создание каталога и т.д. и т.п. — т.е. любую команду, которую вы введете в терминале.
Второй — через subprocess. Показываю тоже два случая:
import subprocess
subprocess.Popen(['pcmanfm','/home/alex/.shutter']) # запуск с аргументом
path = '/home/alex/РабочийСтол/QML на PyQt5.ctb' # имя файла
subprocess.Popen(['xdg-open']+[path]) # открытие файла в ассоциированной программе
Первый случай - когда просто нужно запустить процесс с параметром, а второй - если нужно открыть файл неизвестной природы в его программе, то используется xdg-open (например: xdg-open <полный путь>).
Как-то так… Для win - смотри справку по этим методам. Есть и еще способы, но эти самые понятные.