一、前言
剛剛學(xué)了一些python文件讀寫的內(nèi)容,先跑過來整活了。順便復(fù)習(xí)一下之前學(xué)的東西。
import time
doc_local='D:\learning_folder\interaction.txt'
def iRead():
fr = open(doc_local, 'r')
message=fr.read()
return message
def iWrite(message):
fw = open(doc_local, 'w')
fw.write(message)
fw.close()
def dTime(num):
a=time.time()
b=time.time()
while (b-a)num:
b=time.time()
return None
answer={'i am temmie':'you are temmie? who am i?','temmie':'temmie!!!','wang!':'wangwangwang!!!'}
iWrite('test begin')
message0 = iRead()
print(message0)
while True:
dTime(1.0000000)
mes = iRead()
if mes!=message0:
v=answer.get(mes)
if v==None:
if mes=='q' :
print('退出運(yùn)行')
break
else:
print('message:', mes, end='\t')
a_out=('temmie say again:{0}'.format(mes))
message0 = a_out
iWrite(a_out)
print(a_out)
else:
print('message:', mes, end='\t')
b_out=('{0}'.format(answer.get(mes)))
message0 =b_out
iWrite(b_out)
print('answer:',b_out)
效果呢,就是你在這個(gè)位置的記事本里寫東西然后保存,它會(huì)回復(fù)你消息,如果你說的話在規(guī)定的字典中,它就會(huì)回你預(yù)設(shè)好的話。如果沒有預(yù)設(shè),就會(huì)重復(fù)你的話(復(fù)讀機(jī))。
我把每次輸入與返回都進(jìn)行了輸出
二、效果演示
![](/d/20211017/9a66047615e1c0e0b1f340d8355c9ce4.gif)
你甚至可以跟它接crepper,如果你足夠閑,也可以整個(gè)成語接龍。
![](/d/20211017/ece3b4ce9e41595dde19e84c4ed1f074.gif)
三、完整代碼
三個(gè)函數(shù)分別定義讀取內(nèi)容、寫入內(nèi)容、與定時(shí)
def iRead():
fr = open(doc_local, 'r')
message=fr.read()
return message
def iWrite(message):
fw = open(doc_local, 'w')
fw.write(message)
fw.close()
def dTime(num):
a=time.time()
b=time.time()
while (b-a)num:
b=time.time()
return None
answer是預(yù)設(shè)回答的字典。
先寫入內(nèi)容,清空之前的文字,提示程序開始。讀取文件內(nèi)容,就是'test begin'
iWrite('test begin')
message0 = iRead()
然后是一個(gè)死循環(huán),直到你輸入了q,才會(huì)退出。
每隔1秒讀取一次文件中的內(nèi)容,如果文件內(nèi)容沒變視為沒輸入,文件內(nèi)容變化則對(duì)字典進(jìn)行檢索,返回None證明無對(duì)應(yīng)答案,則復(fù)讀。如果返回了值則輸出該值。
while True:
dTime(1.0000000)
mes = iRead()
if mes!=message0:
v=answer.get(mes)
if v==None:
if mes=='q' :
print('退出運(yùn)行')
break
else:
print('message:', mes, end='\t')
a_out=('temmie say again:{0}'.format(mes))
message0 = a_out
iWrite(a_out)
print(a_out)
else:
print('message:', mes, end='\t')
b_out=('{0}'.format(answer.get(mes)))
message0 =b_out
iWrite(b_out)
print('answer:',b_out)
到此這篇關(guān)于Python實(shí)戰(zhàn)整活之聊天機(jī)器人的文章就介紹到這了,更多相關(guān)python聊天機(jī)器人內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Python如何實(shí)現(xiàn)機(jī)器人聊天
- vue.js實(shí)現(xiàn)h5機(jī)器人聊天(測試版)
- python操作微信自動(dòng)發(fā)消息的實(shí)現(xiàn)(微信聊天機(jī)器人)
- Python使用20行代碼實(shí)現(xiàn)微信聊天機(jī)器人
- jquery實(shí)現(xiàn)聊天機(jī)器人
- 基于python的itchat庫實(shí)現(xiàn)微信聊天機(jī)器人(推薦)
- nodejs實(shí)現(xiàn)聊天機(jī)器人功能
- Python QQBot庫的QQ聊天機(jī)器人
- 使用python接入微信聊天機(jī)器人
- python微信聊天機(jī)器人改進(jìn)版(定時(shí)或觸發(fā)抓取天氣預(yù)報(bào)、勵(lì)志語錄等,向好友推送)
- Django實(shí)現(xiàn)聊天機(jī)器人