以前一直想要做一个AI助手,现在终于可以简单的实现一下了,做了简单的优化,以前将输入值做成列表,现在改为将输入的值做成本地文本,输入对应的值,就会匹配对应的功能。
# -*- coding:utf-8 -*-
#Mr.Wen制作
import time
import os,sys,stat
import win32con,win32api
import requests
from bs4 import BeautifulSoup
#将文本的元素生成成列表,供应给别人遍历,记住,文本编码必须是UTF-8的
file='D:/IT/人生苦短,我学python/小项目/AI助手/AI助手数据包/zaoshang.txt'
with open(file,'r',encoding='utf-8') as f:
zs = f.read().splitlines()
file='D:/IT/人生苦短,我学python/小项目/AI助手/AI助手数据包/shijian.txt'
with open(file,'r',encoding='utf-8') as f:
sj = f.read().splitlines()
file='D:/IT/人生苦短,我学python/小项目/AI助手/AI助手数据包/tuichu.txt'
with open(file,'r',encoding='utf-8') as f:
tc = f.read().splitlines()
file='D:/IT/人生苦短,我学python/小项目/AI助手/AI助手数据包/duqushuju.txt'
with open(file,'r',encoding='utf-8') as f:
dqsj = f.read().splitlines()
file='D:/IT/人生苦短,我学python/小项目/AI助手/AI助手数据包/xierushuju.txt'
with open(file,'r',encoding='utf-8') as f:
xrsj = f.read().splitlines()
file='D:/IT/人生苦短,我学python/小项目/AI助手/AI助手数据包/shanchu.txt'
with open(file,'r',encoding='utf-8') as f:
sc = f.read().splitlines()
file='D:/IT/人生苦短,我学python/小项目/AI助手/AI助手数据包/tianqi.txt'
with open(file,'r',encoding='utf-8') as f:
tq = f.read().splitlines()
zaoshang=zs
shijian=sj
tuichu=tc
duqushuju=dqsj
xierushuju=xrsj
shanchu=sc
tianqi=tq
shenfen = ('狼')
diannao = 'AI:'
wjcunfang='D:/wendang.txt'
def yincang(yc): #隐藏文档
win32api.SetFileAttributes(yc,win32con.FILE_ATTRIBUTE_HIDDEN)#设置为隐藏
attr8 = win32api.GetFileAttributes(yc)
def yanchi(miao): #延迟
time.sleep(miao)
def scwd(s): #删除文档
yanzheng = input(diannao+'您正在执行敏感操作,请验证身份:')
if yanzheng == shenfen:
if os.path.exists(s):
os.remove(s) #os.remove()删除文件
print(diannao+'删除成功')
else:
print(diannao+'没有该文档')
else:
print(diannao+'who are you?')
def du(d): #读取文档
if os.path.isfile(d):
wenjian = open(d,mode='r')
duqu = wenjian.read()
print('*'*50)
print('open:'+'\n'+duqu)
print('*'*50)
yincang(d)
wenjian.close()
else:
chuangjian=input('当前没有该文档,是否需要创建:(是/否)')
if chuangjian=='是':
os.path.isfile(d)
qaz = open(d,'a')
yincang(d)
qaz.close()
elif chuangjian=='否':
pass
else:
while True:
a = input('请输入是或者否:')
if a == '是':
os.path.isfile(d)
qaz = open(d,'a')
yincang(d)
qaz.close()
break
elif a == '否':
break
def xie(x): #写文档,如果没有文档则自动创建
print('请输入您要记录的东西:(输入‘退出’退出文档)')
while True:
os.path.isfile(x)
qaz = open(x,'a')
insertName = str(input())
xieru = qaz.write(insertName +'\n')
yincang(x)
qaz.close()
if insertName == '退出': #怎么样将退出这两个字不要出现在文档里面
break
print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
print('-------Welcome Half moon system-------')
while True:
shuru=input('Me:')
if shuru in zaoshang: #早上好
print(diannao+'Good morning')
if shuru in shijian: #显示本地时间
print (diannao+time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
if shuru in tuichu: #退出系统
print(diannao + '臣退了')
yanchi(3)
exit()
if shuru in duqushuju: #读取文档
du(wjcunfang)
if shuru in xierushuju: #写文档,如果没有文档则自动创建
xie(wjcunfang)
if shuru in shanchu: #删除文件
scwd(wjcunfang)
if shuru in tianqi: #读取天气,使用爬虫获取,待完善
print(diannao+'注:该程序必须要在有网络的情况下才能使用,否者报错!')
url = 'https://www.tianqi.com/yangjiang/15/'
r = requests.get(url)
dome = r.status_code
if dome == 200:
r.encoding = r.apparent_encoding
demo = r.text
soup = BeautifulSoup(demo, 'html.parser')
print(soup.h3.b.string)
for si in soup.h3.next_siblings: #遍历p后续所有节点,当节点没有东西返回的时候,代表没有
print(si)
else:
print('错误',dome)
我下面是7个本地文本,当你输入对应的值,匹配到程序里某一个功能时,将会执行对应的功能。
希望下次再改进一下,有什么建议的各位帮忙提一下,谢谢!