Форум сайта python.su
0
Пишу скрипт, который запускает сборку.
Для запуска сборки нужно сделать 3 команды в cmd
1. cd c:\dir
2. qmake project.pro
3. mingw32-make -j5
Если я пытаюсь все делать через
os.system
Офлайн
31
os.system('ping ua.ru & ping mail.ru & tracert google.com')
Офлайн
31
Порядок выполнения команд в cmd
command1 & command2 — выполняется первая команда, затем вторая команда;
command1 && command2 — вторая выполниться, только если успешно выполнилась
первая;
command1 || command2 — выполняется вторая команда, только если первая не была выполнена (полученный код ошибки превышает ноль);
Офлайн
857
>>> import os >>> cmd = ''' ... echo 1 ... echo 2 ... echo 3 ... ''' >>> os.system(cmd) 1 2 3 0 >>>
Офлайн
31
Это только под виндой так?
Python 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)] on win 32 Type "help", "copyright", "credits" or "license" for more information. >>> import os >>> cmd = ''' ... echo 1 ... echo 2 ... echo 3 ... ''' >>> os.system(cmd) 1 0 >>> cmd = ''' ... ping ua.ru ... ping google.com ... echo 1 ... ''' >>> os.system(cmd) Обмен пакетами с ua.ru [91.230.208.147] с 32 байтами данных: Ответ от 91.230.208.147: число байт=32 время=51мс TTL=57 Ответ от 91.230.208.147: число байт=32 время=51мс TTL=57 Ответ от 91.230.208.147: число байт=32 время=51мс TTL=57 Ответ от 91.230.208.147: число байт=32 время=52мс TTL=57 Статистика Ping для 91.230.208.147: Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь) Приблизительное время приема-передачи в мс: Минимальное = 51мсек, Максимальное = 52 мсек, Среднее = 51 мсек 0 >>>
Офлайн
0
os.system('cd ' + path_to_dir & 'qmake tvz-win.pro & mingw32-make -j5' )
Офлайн
31
os.system('cd ' + path_to_dir + ' & qmake tvz-win.pro & mingw32-make -j5' )
Офлайн
857
тогда лучше использовать
' & '.join
>>> cmd = ' & '.join(( ... 'echo 1', ... 'echo 2' ... )) >>>
Офлайн
31
py.user.nextНе прошло…
тогда лучше использовать
Отредактировано sanodin (Янв. 15, 2014 19:02:08)
Офлайн
857
import os lst = ( 'cd c:\\dir', 'qmake project.pro', 'mingw32-make -j5' ) cmd = ' & '.join(lst) os.system(cmd)
sanodinэто просто объединение команд, тогда их можно отдельно хранить
Не прошло…
Отредактировано py.user.next (Янв. 15, 2014 23:39:19)
Офлайн