2012-06-29 3 views
0

Я довольно новичок в Python, и я пытаюсь что-то сделать. Я использую Python IRC-бот, который позволяет мне создавать функции, которые используются в качестве команд на канале. Я получил python версию Cleverbot и хотел бы связать эти два вместе. Но из-за того, что я плохо разбираюсь в Python. Я не уверен, как это сделать.Предоставление ввода в файл Python и получение результата?

Чтобы использовать Cleverbot питона я бы просто ввести в терминал:

python cleverbot.py 

И это дало бы мне «>», где я могу ввести. Затем я говорю по этой строке «Hello», и скрипт cleverbot напечатает результат с помощью команды печати.

Итак, я возился и обнаружил, что могу использовать команды ботов Python IRC для печати строки, поэтому он просто напечатает строку результатов для меня. Проблема в том, что я не могу заставить ее вводить что-либо в скрипт cleverbot. Я надеялся, что это можно было сделать что-то вроде:

print python cleverbot.py "hello" 

И было бы просто напечатать ответ от Cleverbot, делает ли это смысл? Затем я мог просто использовать команды IRC для печати ответа на канал.

Заранее спасибо, и я надеюсь, что это было возможно понять.

ответ

1

внутри cleverbot.py вы можете эти утверждения, чтобы напечатать аргумент командной строки при условии:

import sys 
    print(sys.argv[1]) #or print(' '.join(sys.argv[1:])) if the arguments are more than one 

так что теперь python cleverbot.py hello напечатает hello

0

Попробуйте

echo "hello" | python cleverbot.py 
+0

что работало, но сценарий настраивал также EOFError по какой-то причине. Теперь я могу сделать что-то вроде: return echo "hello" | python cleverbot.py – Linkandzelda

+0

Как именно эти файлы эффектов содержат и полагаются на цикл? Будет ли цикл активирован и останется ли он на cleverbot.py? – Linkandzelda

+0

@ user1176160, эта команда просто передает строку «hello \ n» в stdin скрипта python. Если скрипт не готов обрабатывать стандартную обработку EFS, то это приведет к поведению, которое вы видите. – pingw33n

Смежные вопросы