2016-06-04 7 views
-1

У меня возникла проблема с логикой и синтаксисом в Python для открытия программы и выполнения программы.открыть программу и выполнить команду внутри - Python

Для примера, я понял, как открыть программу с питона кодом, делая так:

import os 
os.system("start c:/test/sqlite3 test.db3) 

В этом примере кода я открывающего sqlite3 (я знаю, что есть sqlite3 библиотека Python - Я пытаюсь понять ОС прямо сейчас.)

Как выполнить следующую команду с этим открытым файлом?

.read test.sql 

Я был бы признателен, если бы вы кратко объяснили мне логику. Спасибо.

+0

Если вы пытаетесь понять ОС, тогда придерживайтесь команд, связанных с ОС. Когда вы будете работать с базами данных sqlite, вам будет намного лучше использовать библиотеку sqlite. Вы просто запутаетесь и поймете плохие практики, если будете смешивать и сопоставлять библиотеки. – AK47

+0

Нет, как я уже сказал, это всего лишь тест. Я не собираюсь использовать смешанные библиотеки, я пытаюсь понять, как манипулировать с ОС. – filtertips

+0

os.system() в основном совпадает с открытием командной строки и ввода команд. Вы можете связать несколько вызовов OS.system() для написания сценария, но это всего лишь плохая практика и полное неправильное использование библиотек. os.system ('cd ../'), os.system ('dir'), os.system ('cd ../'), os.system ('dir'), например, будут запускать их 4 команды один после другой .. – AK47

ответ

1

Во-первых, os.system больше не рекомендуется. Вместо этого используйте модуль subprocess.

Чтобы открыть программка с subprocess использования:

import subprocess 

p = subprocess.Popen(['command', 'arguments']) 

С Popen вы также можете использовать PIPE для связи с процессом через stdin. Например .:

p = subprocess.Popen(['command', 'args'], stdin=subprocess.PIPE) 

result = p.communicate(b"Any input that goes to stdin") 

# do whatever you want to do with the result 

Документация о Popen, subprocess module и communicate.

Смежные вопросы