Кибор » Кибор - Интегрированная среда разработки ботов » О программе Кибор » Версия 5.69 Выполнение скриптов Python в Кибор

Страниц (3): « 1 [2] 3 »
 

11. Kibor - 03 Сентября, 2020 - 12:44:01 - перейти к сообщению
В runpython добавлен один, не обязательный параметр.
0 ли 1
Его назначение:
По умолчанию, при выполнение функции runpython без параметров, Кибор обязательно запускает новую версию Python.

При этом при завершение скрипта Кибор сканирует систему на запущенные все Python, которые были запущенны этой копией Кибор. Даже при прошлых запусках и по какой то причине не были им закрыты. И закрывает их.
То есть при новом запуске скрипта у нас всегда новая версия Python.

Это бывает не удобно, поскольку во время разработки скрипта, к примеру работа с вебдрайвером, нам необходимо не прерывать связь с ним (не закрывать Python), так как при новом запуске необходимо будет опять перезапускать браузер.

По умолчанию (без параметров) в runpython передается параметр 1.

Если мы укажем параметр 0
runpython (0), при остановке скрипта Кибор не будет закрывать Python, пока мы не вызовем функцию closepython или функцию runpython без параметров или с параметром 1.
При следующих запусках runpython (0) Кибор проверяет наличие запущенного Python и если он запущен, не запускает новую копию.

Поэтому при новом запуске скрипта мы можем продолжать работать с уже запущенным Python.

Кибор проверяет и закрывает все копии Python при закрытие программы. Поэтому при завершение работы Кибор, Python будет закрыт.
12. Adomb - 04 Сентября, 2020 - 08:58:01 - перейти к сообщению
 Kibor пишет:
проверяет и закрывает все копии Python при закрытие программы. Поэтому при завершение работы Кибор, Python будет закрыт.

Win 10. Кибор запускается от админа. После выполнения runpython() и последующим закрытии кибора - процесс питона остаётся работать. Если выполнить код
Спойлер (Отобразить)

один процесс питона остаётся работать и тоже не завершается после закрытия кибора.
Это я так, для информации.

Kibor, сделать бы ещё возможность указать в скрипте рабочую папку питона. Хотя бы знать - ждать или не ждать такую возможность.
13. Kibor - 04 Сентября, 2020 - 09:14:59 - перейти к сообщению
 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
14. Adomb - 04 Сентября, 2020 - 09:42:43 - перейти к сообщению
До завтра понаблюдаю, напишу.
15. neba2101 - 27 Октября, 2020 - 06:43:18 - перейти к сообщению
 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.
16. Zireael - 27 Октября, 2020 - 17:52:27 - перейти к сообщению
 Цитата:
можно как-то посмотреть процент совпадения

Заменить эту строку:
 Цитата:
return sendgetpython("print(all_string[list.index(max(list))])" );

на:
CODE:
return sendgetpython("print(all_string[list.index(max(list))], round(max(list), 2))");
17. Adomb - 29 Октября, 2020 - 22:07:38 - перейти к сообщению
Если работают 2 экзешника, первый выполняет питоновские дела, а в это время второй выполнит команду closepython(), то процесс питона первого экзешника тоже закроется и питоновские дела первого экзешника выполнены не будут?
18. Zireael - 30 Октября, 2020 - 03:35:52 - перейти к сообщению
 Цитата:
первый выполняет питоновские дела, а в это время второй выполнит команду closepython(), то процесс питона первого экзешника тоже закроется

Нет. Каждый exe запускает свой экземпляр интерпретатора.
19. Adomb - 18 Марта, 2021 - 12:36:05 - перейти к сообщению
Kibor, вопрос.
Питоновский скрипт имеет вероятность зависнуть.

sendpython("чегото" ) - через некоторое время - getpython()
Если скрипт завис, то всё норм, кибор обработал как readerror и пошли дальше.
Но вот это "некоторое время", через которое посылаешь запрос getpython() может быть разным и завис скрипт или ещё отрабатывает можно не угадать.
Очень удобно использовать sendgetpython("чегото" ), но если скрипт завис - кибор тоже завис.
Можно придумать-сделать параметр, чтобы по истечении заданного времени в этом параметре, sendgetpython прерывался и кибор продолжал работать?
Надеюсь, понятно объяснил.
20. Kibor - 18 Марта, 2021 - 13:34:20 - перейти к сообщению
Придумать то можно, но для этого стоит пользоваться связкой sendpython getpython и выход с цикла через какое то время.

Powered by ExBB FM 1.0 Final