Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.71/35: Рейтинг темы: голосов - 35, средняя оценка - 4.71
22 / 2 / 0
Регистрация: 27.06.2013
Сообщений: 127
1

Запуск shell с параметрами

29.02.2016, 02:27. Показов 6327. Ответов 25
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, есть скрипт на питоне proga.py, который можно запустить с параметрами... И я хочу сделать чтобы мой скрипт открывал тот что уже есть в новом окне shell..
Python
1
2
3
import  subprocess 
 
print subprocess.call(['proga', --version])
Понятно что если так запустить то напишет в том же шелле откуда запускался скрипт версию программы.. Но нужно чтобы создалось отдельное окно с шелом и там вывелся результат.. Не подскажете как?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.02.2016, 02:27
Ответы с готовыми решениями:

Не работает запуск скрипта с параметрами
Подскажите почему не работает скрипт когда я его запускаю с параметром ./bigdigits.py 234 Выдаёт...

Запуск shell - команды через SSH
Добрый день! Использую модуль paramiko. Нужно выполнять различные команды через ssh на удаленном...

Запуск программы с sys.args на shell или PyCharm console
Привет! Не понимаю, почему мне выкидывает IndexError: list index out of range в этой строчке: B,...

Использовать команду Shell для разных кнопок с разными параметрами
Здравствуйте, как быть когда нужно на кнопку, которая в документе Ворд повесить код типа этого ...

25
Заблокирован
29.02.2016, 05:43 2
multiprocess порождаете cmd.exe и передаете туда команду
0
22 / 2 / 0
Регистрация: 27.06.2013
Сообщений: 127
29.02.2016, 09:45  [ТС] 3
можете пример дать?

Добавлено через 3 часа 32 минуты
Python
1
2
3
4
5
def func:
    subprocess.Popen(r'cmd.exe')
 
p = Process(target=func)
p.start()
не работает, перебрал еще около полсотни вариантов, подскажите кто нибудь а?

Добавлено через 3 минуты
Код
Python
1
subprocess.Popen(r'cmd.exe', shell=True)
не открывает новое окно cmd а в старом запускает командную строку..
0
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
29.02.2016, 10:25 4
Python
1
os.system("start cmd /c {your script}")
Добавлено через 4 минуты
как вариант (именно так лучше и делать, наверное)

Python
1
2
3
4
5
from subprocess import call
dirwcommand = "path to the dir with script"
command2run = "your script name"
 
rc = call("start cmd /K " + command2run, cwd=dirwcommand, shell=True)
1
22 / 2 / 0
Регистрация: 27.06.2013
Сообщений: 127
29.02.2016, 10:59  [ТС] 5
Благодарю, теперь все ясно как день!)

Добавлено через 26 минут
только я не пойму, а где тут должен быть multuprocess?
0
22 / 2 / 0
Регистрация: 27.06.2013
Сообщений: 127
05.03.2016, 11:13  [ТС] 6
а как тоже самое сделать в линуксе?
Python
1
2
3
import subprocess
 
subprocess.Popen(['gnome-terminal', 'test.py'],shell=True)
не работает..
0
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
05.03.2016, 11:20 7
только что проверил

Python
1
2
3
4
5
6
7
import subprocess
 
cmd1 = '/usr/bin/gnome-terminal -e "python /home/jabbson/Downloads/wait.py 3"'
a = subprocess.call(cmd1, shell=True)
 
cmd2 = '/usr/bin/xterm -e "python /home/jabbson/Downloads/wait.py 3"'
b = subprocess.call(cmd2, shell=True)
0
22 / 2 / 0
Регистрация: 27.06.2013
Сообщений: 127
05.03.2016, 11:33  [ТС] 8
если так делаю, то открывается терминал и сразу пропадает.. скрипт который запускаю в дочернем вот
Python
1
2
3
4
5
6
7
import time
 
i = 20
while i > 0:
    print 'test'
    time.sleep(2)
    i = i - 1
0
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
05.03.2016, 11:35 9
точно не третий питон запускается при этом?
0
22 / 2 / 0
Регистрация: 27.06.2013
Сообщений: 127
05.03.2016, 11:36  [ТС] 10
попробовал с 3-м - тоже самое)
0
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
05.03.2016, 11:37 11
спрашиваю из-за скобок
0
22 / 2 / 0
Регистрация: 27.06.2013
Сообщений: 127
05.03.2016, 11:38  [ТС] 12
аа, не, я все сделал как вы показали.. Попробовал еще по своему покрутил - все равно не получается..
0
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
05.03.2016, 11:42 13
попробуйте убрать принт и запустить снова, точно не будет работать?
1
22 / 2 / 0
Регистрация: 27.06.2013
Сообщений: 127
05.03.2016, 12:29  [ТС] 14
может где-то была ошибка у меня.. Я сделал все с самого начала и получилось - все заработало!!! Благодарю Вас за помощь)

Добавлено через 28 минут
только вот терминал закрывается сразу после выполнения.. Можно его как то оставить?
0
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
05.03.2016, 12:35 15
-hold
0
22 / 2 / 0
Регистрация: 27.06.2013
Сообщений: 127
05.03.2016, 12:41  [ТС] 16
простите за невежество, но где написать -hold?
0
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
05.03.2016, 12:42 17
а как вы запускаете вообще, покажите свой call
0
22 / 2 / 0
Регистрация: 27.06.2013
Сообщений: 127
05.03.2016, 14:54  [ТС] 18
ну пока что я запускаю вот так
Python
1
2
cmd1 = 'gnome-terminal -e "python /home/bmf/test.py"'
pc = subprocess.Popen(cmd1,shell=True)
по вашему примеру..
пока что сложности с -hold и как в это "python /home/bmf/test.py" добавить переменную с параметрами.

Добавлено через 1 час 53 минуты
Кстати в линуксе popen.poll() тоже не работает, что за бред!
0
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
05.03.2016, 14:59 19
Цитата Сообщение от Dathy Посмотреть сообщение
пока что сложности с -hold
hold для xterm

для гномового терминала нужно создать соответствующий профайл
1
22 / 2 / 0
Регистрация: 27.06.2013
Сообщений: 127
05.03.2016, 15:17  [ТС] 20
видимо эта тему уже не отностится к питону? Сделал в профиле держать окно открытым и все получилось... А что скажете на счет poll()? В соседней теме вы мне посоветовали сделать так
Python
1
pc = Popen('cmd.exe /K...', creationflags=CREATE_NEW_CONSOLE)
это для винды.. А как сделать аналогично в линуксе?
0
05.03.2016, 15:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.03.2016, 15:17
Помогаю со студенческими работами здесь

Запуск через Shell
Как сделать запуск данной команды через Shell (Memory - переменная): C:\Program...

Запуск программы из DOS shell
Здравствуйте! Во время работы появилась необходимость использовать результаты программы...

Запуск Shell команд из Perl
Система: FreeBSD 8.0 Поставил smstools 3. Сделал скрипт на Perl обрабатывающий текстовые...

Запуск EXE (не функцией SHELL)
Как можно запустить EXE файл, кроме функции SHELL???

Запуск Shell из Visual Basic
Visual Studio 2017, Visual Basic. Приложение должно открывать окно с командной строкой (cmd.exe),...

Запуск процесса с помощью WScript.Shell
здравствуйте если в бат файл записать: Print #1, ".\smartid_sample.exe " & Chr$(34) & sFP &...

Запуск MS Word через функцию Shell
Всем доброго времени суток. Нужно открыть документ *.doc при помощи Word. Почему-то функция Shell...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru