Как подключить Python к Zennoposter

kagorec

Client
Регистрация
24.08.2013
Сообщения
963
Благодарностей
507
Баллы
93
Первым делом надо установить Python на пк если ранее не ставили (видео инструкция)
В Project Manager подключение скрипта `.py` происходит через кубик `Запуск программы`



В параметре запуска передается уникальный ид (рандом 5 символов например),
которые будут служить для указания имени in_{name}.txt файла откуда брать контент.
Также это название будет для файла с результатом out_{name}.txt

Многопоток будет работать корректно при условии что `ids` уникальный в каждом потоке.

Содержимое скрипта `.py` пример для суммаризации статьи:
Внимание на строки 34-35

Запуск скрипта, данные подтягивает с тхт файла и рядом пишет в результат:
import sys
from sumy.parsers.plaintext import PlaintextParser
from sumy.nlp.tokenizers import Tokenizer
from sumy.summarizers.lsa import LsaSummarizer

def summarize_file(input_file, output_file, num_sentences=2):
    # Чтение содержимого HTML файла
    with open(input_file, "r", encoding="utf-8") as file:
        html_content = file.read()

    # Парсим текст
    parser = PlaintextParser.from_string(html_content, Tokenizer("english"))

    # Создаем объект LSA Summarizer
    summarizer = LsaSummarizer()

    # Генерация суммаризации
    summary = summarizer(parser.document, num_sentences)

    # Запись результата в выходной файл
    with open(output_file, "w", encoding="utf-8") as out_file:
        for sentence in summary:
            out_file.write(str(sentence) + '\n')

if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("Usage: sum.py <name>")
        sys.exit(1)

    # Получаем параметр из командной строки
    name = sys.argv[1]

    # Формируем пути к файлам
    input_file = f"T:\\py\\in_{name}.txt"
    output_file = f"T:\\py\\out_{name}.txt"

    try:
        # Вызываем функцию суммаризации
        summarize_file(input_file, output_file)
        print(f"Суммаризация завершена. Результат записан в {output_file}.")
    except Exception as e:
        print(f"Ошибка: {e}")
 
Последнее редактирование:

volody00

Client
Регистрация
06.09.2016
Сообщения
902
Благодарностей
934
Баллы
93
Дополню, что путь к проекту (во избежание проблем) с шаблоном не должен содержать русских символов и пробелов. Может это как-то можно фиксить, не знаю.

И что на счёт многопотока, не тестил? Я так понимаю, нормально будет отрабатывать только в 1 поток?
 
  • Спасибо
Реакции: kagorec

southside

Client
Регистрация
20.04.2019
Сообщения
204
Благодарностей
258
Баллы
63
И что на счёт многопотока, не тестил? Я так понимаю, нормально будет отрабатывать только в 1 поток?
всё нормально будет, просто запустится множество копий python скрипта. ну и конечно, разные скрипты питона по-разному жрут память и проц, это надо учитывать
 
  • Спасибо
Реакции: volody00

Fog

Client
Регистрация
23.04.2021
Сообщения
89
Благодарностей
10
Баллы
8
если есть не один шаблон а несколько которые используют пайтон для решения то я использую

# папка программы
current_directory = os.path.dirname(os.path.abspath(__file__))
print("Текущая папка программы:", current_directory)

чтобы данные оставались в текущем месте шаблона и не приходилось каждый раз настраивать.
 

Fog

Client
Регистрация
23.04.2021
Сообщения
89
Благодарностей
10
Баллы
8
И что на счёт многопотока, не тестил? Я так понимаю, нормально будет отрабатывать только в 1 поток?
многопоток для файлов без проблем работает. генерим в зенке рандом-строку. передаем рандом как аргумент пайтону. зная рандом по нему же получаем и ответ.
это для файлов.
а для текста можно использовать как передача параметра(аргумента) пайтону а он возвращает std_Out
 
  • Спасибо
Реакции: volody00

Кто просматривает тему: (Всего: 3, Пользователи: 1, Гости: 2)