Возможно ли запустить / выполнить команду bash-скрипта из кода python?

Я не эксперт, поэтому я задаю свой вопрос здесь. У меня есть код C ++, который использует модули openCV. Мне нужна эта программа для отправки изображения (img1.png) из кода на Python, который должен обрабатываться этим кодом на C ++. Я не написал этот код и не нуждаюсь в нем для моей конкретной исследовательской проблемы.

Его можно запустить через терминал ubuntu:

$command_ -option /directory/to/set/of/images /home/images/img1.png

Мой вопрос в том, можно ли запустить эту команду внутри кода python? Если да, не могли бы вы посоветовать?

Или можно вызвать bash script внутри кода python, который включает эту команду оболочки?

Я очень ценю, если вы мне поможете.

1
задан 3 April 2018 в 00:49

3 ответа

Python имеет os-модуль, который позволяет вам делать именно это.

Например, вы могли бы позвонить:

import os
os.system("ls -l")

Я рекомендую вам создать строку и передать ее os.system()

import os
c = "command"
opt = "options"
args = "arguments"
ss = c + opt + args

os.system(ss)

Есть способы связать C / C ++ с python, которые больше задействованы. Проверьте официальную документацию Python 2 на ctypes, чтобы узнать, как интегрировать ее напрямую.

Изменить: существует спор как использовать os.system или модуль подпроцессов. Мой ответ рекомендует os.system из-за того, что он находится в документации, но вы обязательно должны изучить ctypes , который предлагает большую гибкость.

4
ответ дан 22 May 2018 в 11:39
  • 1
    Большое спасибо за вашу помощь. Действительно ценю это. – S.EB 4 April 2018 в 19:24
  • 2
    Я попытался запустить os.system("sed -rn 's/[^,]+,([^,]+),.*/\1/p' /home/user/workspace/results.txt"), однако я не вижу выход, он показывает 0 в выходном файле jupyter. – S.EB 8 April 2018 в 13:27

Python имеет os-модуль, который позволяет вам делать именно это.

Например, вы могли бы позвонить:

import os os.system("ls -l")

Я рекомендую вам создать строку и передать ее os.system()

import os c = "command" opt = "options" args = "arguments" ss = c + opt + args os.system(ss)

Есть способы связать C / C ++ с python, которые больше задействованы. Проверьте официальную документацию Python 2 на ctypes, чтобы узнать, как интегрировать ее напрямую.

Изменить: существует спор как использовать os.system или модуль подпроцессов. Мой ответ рекомендует os.system из-за того, что он находится в документации, но вы обязательно должны изучить ctypes , который предлагает большую гибкость.

4
ответ дан 17 July 2018 в 17:36

Python имеет os-модуль, который позволяет вам делать именно это.

Например, вы могли бы позвонить:

import os os.system("ls -l")

Я рекомендую вам создать строку и передать ее os.system()

import os c = "command" opt = "options" args = "arguments" ss = c + opt + args os.system(ss)

Есть способы связать C / C ++ с python, которые больше задействованы. Проверьте официальную документацию Python 2 на ctypes, чтобы узнать, как интегрировать ее напрямую.

Изменить: существует спор как использовать os.system или модуль подпроцессов. Мой ответ рекомендует os.system из-за того, что он находится в документации, но вы обязательно должны изучить ctypes , который предлагает большую гибкость.

4
ответ дан 23 July 2018 в 18:27

Другие вопросы по тегам:

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