Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
1 / 1 / 0
Регистрация: 27.03.2020
Сообщений: 18

subprocess кракозябры

02.11.2020, 12:34. Показов 2555. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот часть кода в котором ошибка:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from tkinter import *
from tkinter import messagebox
import json
import subprocess
 
-----------
self.but_start = Button(self.frame_bot2, text='Старт', width=10, height=2, bg='gray', command=self.start_bot, fg='green')
        self.but_start.pack()
 
 
    def start_bot(self):
        if self.but_start['text'] == 'Старт':
            self.but_start.configure(text='Стоп', fg='red')
            command = "python vkbot.py"
            self.process = subprocess.Popen(command, shell=True)
        else:
            self.but_start.configure(text='Старт', fg='green')
            subprocess.Popen("TASKKILL /F /PID {pid} /T".format(pid=self.process.pid, encoding='cp866'))

При нажатии на кнопку "Старт", текст кнопки меняется и запускается процесс vkbot.py. При повторном нажатии на эту кнопку, опять же меняется текст, и процесс закрывается. Все работает нормально, только при повторном нажатии выдает это:
Кликните здесь для просмотра всего текста
�ᯥ譮: �����, � �����䨪��஬ 2480, ���୨� ����� 9588, �� �����襭.
�ᯥ譮: �����, � �����䨪��஬ 9588, ���୨� ����� 4108, �� �����襭.
�ᯥ譮: �����, � �����䨪��஬ 4108, ���୨� ����� 9072, �� �����襭.

Не знаю что это значит
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.11.2020, 12:34
Ответы с готовыми решениями:

subprocess результат выполнения
Такой код для подсчета строк: int(subprocess.check_output().split()) Как вывести результат в консоль "visual studio code",...

Не работает функция subprocess.run
Доброго времени суток! Я пытаюсь научиться запускать команды для командной строки Windows с помощью функции run из модуля subprocess. Но...

subprocess выполнение нескольких команд
Добрый день. Нужно выполнить несколько команд, например в консоли windows так: C:\Users\s05181>cd C:\Program Files\QCAD ...

3
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
02.11.2020, 12:46
Видимо, пытается закрыть процессы с этими ID. Не та кодировка в консоли. Вы явно указали 866, вероятно, там 1251.

На самом деле, тут проблема сложнее, чем кажется. taskkill как-то по особому работает со своими субпроцессами и их кодировками, я на эти грабли уже наступал.
0
1 / 1 / 0
Регистрация: 27.03.2020
Сообщений: 18
02.11.2020, 14:29  [ТС]
subprocess начал использовать только вчера, и даже не разобрался в нем. Код взял на просторах интернета.
Поменял encoding='cp866' на encoding='cp1251' - тоже самое. А еще каждый раз цифры разные.
Возможно есть проще открывать и закрывать процессы? Например process.kill(), только он у меня почему-то не работал
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
02.11.2020, 15:51
Лучший ответ Сообщение было отмечено naripi6291 как решение

Решение

А, я посмотрел, это не тот encoding, про который я подумал. Подайте encoding в Popen, как отдельный параметр. И считывайте ответ через communicate:
Python
1
        output, err = process.communicate()
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.11.2020, 15:51
Помогаю со студенческими работами здесь

Ошибка при компиляции subprocess.py
Здравствуйте. Помогите новичку, столкнулся с проблемой с subprocess.py при компиляции

Shell command linux Subprocess
Есть небольшой набор линуксовых команд, этот скрипт нужно выполнить на виртуальной машине. Встал на том, что есть список команд, когда в...

Subprocess - завершить процесс. python 3
Здравствуйте. В одной папке с программой лежит server.exe (приложение которое работает бесконечно долго). Например: from time...

Не исполняется subprocess из под планировщика задач
subprocess не исполняется из планировщика совсем. То есть для проверки прописал следующее f = open('/test.txt','w') f.write('test') ...

Ввод в терминал открытый через subprocess
Через subprocess отрыл терминал, но не знаю как мне отдавать ему команды через IDLE. Как можно вводить команды терминалу через IDLE? ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru