Уведомления

Группа в Telegram: @pythonsu

#1 Июль 24, 2013 20:10:59

XTerm
Зарегистрирован: 2013-03-28
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Удалить все копии процесса

Добрый вечер!

Есть такая проблема. Не знаю, как по простому убить все копии конкретного процесса по имени. То есть, 20 запущенных вордов и их всех надо убить. Все это дело под виндой.

Сейчас использую такой хак:

os.system("taskkill /FI \"Imagename eq winword*\"")

Но у такого подхода есть существенный недостаток - питон не ловит ошибки (права доступа и прочее)

Существует чтото подобное в питоне?

Офлайн

#2 Июль 24, 2013 21:20:46

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

Удалить все копии процесса

вам нужен просто вывод ошибок консоли windows ?

на примере пинга

# -*- coding: cp1251 -*-
import subprocess
def ping1(ipaddress="mail.ru"):
    p = subprocess.Popen("ping  %s" % ipaddress, shell=True,
                        stdout=subprocess.PIPE)
    out = p.stdout.read() #в переменной out находится вывод команды ping. Ниже идет обработка вывода команды ping.
    print out.decode('cp866')
   
if __name__ == '__main__':
    ping1()

или
#coding: cp1251
from subprocess import Popen, PIPE
def exec_cmd(cmd_line):
    process = Popen(cmd_line.split(), shell=True, stdout=PIPE)
    stdout, stderr = process.communicate()
    return stdout.decode('cp866') 
    
print exec_cmd("taskkill /F /IM notepad.exe")

Отредактировано sanodin (Июль 24, 2013 22:21:51)

Офлайн

#3 Июль 24, 2013 22:17:10

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

Удалить все копии процесса

sanodin
Подправь. .split() возвращает список. Список не имеет метода .decode().



Отредактировано 4kpt (Июль 24, 2013 22:22:46)

Офлайн

#4 Июль 24, 2013 22:22:45

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

Удалить все копии процесса

4kpt
sanodinПодправь. .split() возвращает список. Списко не имеет метода .decode().
Да спасибо , я знал…править не хотел

Отредактировано sanodin (Июль 24, 2013 22:24:25)

Офлайн

#5 Июль 24, 2013 22:23:19

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

Удалить все копии процесса

Я понял, что Вы поторопились :)



Офлайн

#6 Июль 24, 2013 22:31:00

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

Удалить все копии процесса

4kpt
Я понял, что Вы поторопились
Вот вы прочитав код нашли ошибку, а я только проверив на работоспособность, в общем пока не могу как вы…надеюсь когда нибудь

Офлайн

#7 Июль 24, 2013 22:34:33

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

Удалить все копии процесса

Да не. Я просто преподаватель. Читаю курс “информатика”. Поэтому такие очепятки уже привык выявлять на стадии набора у студентов. Очень часто сталкиваюсь - вот и выработался рефлекс :) Более серьезные ошибки я так сходу не найду…



Офлайн

#8 Июль 24, 2013 22:37:20

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

Удалить все копии процесса

4kpt
Да не. Я просто преподаватель.
я знаю что вы преподаватель, мой поклон

Офлайн

#9 Июль 24, 2013 22:40:46

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

Удалить все копии процесса

Да не парьтесь. Скоро это закончится. Студенты каждый год все лучше и лучше :) С такой зарплатой, начальством и требованиями нужно все это прекращать…

P.S. Что-то мы уже начали флеймить. Сейчас влупят нам по бану, для проформы :)



Отредактировано 4kpt (Июль 24, 2013 22:41:37)

Офлайн

#10 Июль 24, 2013 22:41:46

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

Удалить все копии процесса

улыбнуло )))…прекращаем

Отредактировано sanodin (Июль 24, 2013 22:42:04)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version