Kibor |
Отправлено: 03 Сентября, 2020 - 20:44:01
|
Эксперт
Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
В runpython добавлен один, не обязательный параметр.
0 ли 1
Его назначение:
По умолчанию, при выполнение функции runpython без параметров, Кибор обязательно запускает новую версию Python.
При этом при завершение скрипта Кибор сканирует систему на запущенные все Python, которые были запущенны этой копией Кибор. Даже при прошлых запусках и по какой то причине не были им закрыты. И закрывает их.
То есть при новом запуске скрипта у нас всегда новая версия Python.
Это бывает не удобно, поскольку во время разработки скрипта, к примеру работа с вебдрайвером, нам необходимо не прерывать связь с ним (не закрывать Python), так как при новом запуске необходимо будет опять перезапускать браузер.
По умолчанию (без параметров) в runpython передается параметр 1.
Если мы укажем параметр 0
runpython (0), при остановке скрипта Кибор не будет закрывать Python, пока мы не вызовем функцию closepython или функцию runpython без параметров или с параметром 1.
При следующих запусках runpython (0) Кибор проверяет наличие запущенного Python и если он запущен, не запускает новую копию.
Поэтому при новом запуске скрипта мы можем продолжать работать с уже запущенным Python.
Кибор проверяет и закрывает все копии Python при закрытие программы. Поэтому при завершение работы Кибор, Python будет закрыт. |
|
|
Adomb |
Отправлено: 04 Сентября, 2020 - 16:58:01
|
Мастер
Покинул форум
Сообщений всего: 185
Дата рег-ции: Июль 2015
Репутация: 1
|
Kibor пишет: проверяет и закрывает все копии Python при закрытие программы. Поэтому при завершение работы Кибор, Python будет закрыт.
Win 10. Кибор запускается от админа. После выполнения runpython() и последующим закрытии кибора - процесс питона остаётся работать. Если выполнить код
Спойлер (Отобразить)CODE:runpython();
pause(3000);
beep(300,400);
runpython();
pause(3000);
beep(300,400);
closepython();
pause(3000);
beep(300,400);
closepython();
один процесс питона остаётся работать и тоже не завершается после закрытия кибора.
Это я так, для информации.
Kibor, сделать бы ещё возможность указать в скрипте рабочую папку питона. Хотя бы знать - ждать или не ждать такую возможность. |
|
|
Kibor |
Отправлено: 04 Сентября, 2020 - 17:14:59
|
Эксперт
Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Adomb пишет: После выполнения runpython() и последующим закрытии кибора - процесс питона остаётся работать
И что происходит после нескольких запусков Кибор? И запусков скриптов?
Процессы не удаляются и нарастают?
Adomb пишет: Хотя бы знать - ждать или не ждать такую возможность
Ждать. Думаю будут разные настройки.
(Добавление)
Adomb пишет: runpython();
pause(3000);
beep(300,400);
runpython();
pause(3000);
beep(300,400);
closepython();
pause(3000);
beep(300,400);
closepython();
Бессмысленный код..
А что происходит при нормальном?
Пара run close |
|
|
neba2101 |
Отправлено: 27 Октября, 2020 - 13:43:18
|
Мастер
Покинул форум
Сообщений всего: 154
Дата рег-ции: Февр. 2017
Репутация: 4
|
Zireael пишет: Так чуть короче:
CODE:if (runpython()==0){messagebox ("Не удалось запустить Python"); goto er;}//Запускаем интерпретатор Python
messagebox ("корявое junlor = точое "+compare("junlor"));//Узнаем каккое слово близкое к корявому junlor
messagebox ("корявое worklng = точое "+compare("worklng"));//Узнаем каккое слово близкое к корявому worklng
messagebox ("корявое recognjtion = точое "+compare("recognjtion"));//Узнаем каккое слово близкое к корявому recognjtion
messagebox ("корявое recognllltjon точое = "+compare("recognllltjon"));//Узнаем каккое слово близкое к корявому recognllltjon
messagebox ("корявое lnterest = точое "+compare("lnterest"));//Узнаем каккое слово близкое к корявому lnterest
messagebox ("корявое vlolet = точое "+compare("vlolet"));//Узнаем каккое слово близкое к корявому vlolet
messagebox ("а на что похоже это? ietsert = точое "+compare("ietsert"));//Узнаем каккое слово близкое к корявому ietsert
closepython();//Завершаем работу с интерпретатором
er:;
function compare(string s1)
{
sendgetpython("import difflib");
sendgetpython("s1=^'"+s1+"^'");
__python
all_string = ("junior", "working", "recognition", "with", "violet", "interest", "renewal") # список слов
list = []
for x in all_string:
__end_python
sendgetpython(" list.append(difflib.SequenceMatcher(None, x.lower(), s1.lower()).ratio())^n");
return sendgetpython("print(all_string[list.index(max(list))])");
}
Помогите подправить код.
1. Если у меня текст, с которым нужно сравнивать храниться в string text[1000]? (размер массива около 1к слов)
2. Еще хотелось бы сделать это сравнение синхронным, и выводить значение в переменную string out например.
А в этом коде можно как-то посмотреть процент совпадения или как-то проконтролировать этот процесс?
Без совпадений compare("1111" ) в этом коде выдает 1 значение из all_string, как я понял.
Совпадение даже одного символа выдает результат (compare("v" ) выдает violet). При шуме в распознавании бывают непредсказуемые значения, и не хотелось бы чтобы ....i.i.i.i давало результат recognition. |
|
|
Zireael |
Отправлено: 28 Октября, 2020 - 00:52:27
|
Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: можно как-то посмотреть процент совпадения
Заменить эту строку:
Цитата: return sendgetpython("print(all_string[list.index(max(list))])" );
на:
CODE:return sendgetpython("print(all_string[list.index(max(list))], round(max(list), 2))"); |
|
|
Adomb |
Отправлено: 18 Марта, 2021 - 19:36:05
|
Мастер
Покинул форум
Сообщений всего: 185
Дата рег-ции: Июль 2015
Репутация: 1
|
Kibor, вопрос.
Питоновский скрипт имеет вероятность зависнуть.
sendpython("чегото" ) - через некоторое время - getpython()
Если скрипт завис, то всё норм, кибор обработал как readerror и пошли дальше.
Но вот это "некоторое время", через которое посылаешь запрос getpython() может быть разным и завис скрипт или ещё отрабатывает можно не угадать.
Очень удобно использовать sendgetpython("чегото" ), но если скрипт завис - кибор тоже завис.
Можно придумать-сделать параметр, чтобы по истечении заданного времени в этом параметре, sendgetpython прерывался и кибор продолжал работать?
Надеюсь, понятно объяснил.(Отредактировано автором: 18 Марта, 2021 - 19:38:45) |
|
|
|