本人最近开始学习python,学习了基础知识后写了些小程序来巩固知识点。这里分享的是一个用python实现的网址账号密码管理程序,实现了接收用户输入,将信息写入文件和查询已录入信息等功能,用到了python中的,字符串、列表、字典和函数等基础知识。
欢迎各路大神吐槽~~~
#引入包 import os #import sys #获取程序所在路径 path = os.getcwd() if not os.path.exists(path + '\\siteinfos.txt'): txt = open(path + '\\siteinfos.txt','w') #打开path下的文件,读写模式:w+,文件不存在会自动创建 txt = open(path + '\\siteinfos.txt') temp = txt.read() txt.close() if temp != '': temp = eval(temp) #输出当前文件的内容 print('当前文件的内容如下:') print(temp) else: temp = [] print('当前文件中没有内容!') #sys.exit() #定义一个列表,列表中的每一项存放一个字典,字典中按定义的项(网址、用户名和密码等)存放网站信息 #获取一个列表(新建或读取) #temp = ["{'web':'www.jd.com','name':'zsc','passwd':'qaz'}","{'web':'www.baidu.com','name':'zsc','passwd':'qaz'}", "{'web':'www.taobao.com','name':'zsc','passwd':'qaz'}" ] #定义一个检查函数,检查网址web是否已存在有记录? def checkrecord(web): #定义一个布尔变量,存放检查结果 isIn = False #遍历列表中的字典,查看网址web是否存在 for i in range(len(temp)): #将列表的每一项格式化成字典后判断用户是否存在 if eval(temp[i - 1]).get('web', 0) == web: #如果存在,isIn为True,且退出检查 isIn = True break else: #如果为假,isIn为False,继续检查 isIn = False if isIn: #网址已存在,返回True return True else: #用户不存在,返回False return False #定义一个展示函数,展示网址web下的所有记录 def showrecord(web): #遍历列表中的字典,查看网址web是否存在 for i in range(len(temp)): #将列表的每一项格式化成字典后判断用户是否存在 if web in eval(temp[i - 1]).values(): #存在则输出该条记录 print(temp[i - 1]) #定义一个创建函数,将新记录添加到列表 def newtable(web,name,passwd): #用try...except函数捕捉异常,提高用户体验 try: #获取列表的长度,用于插入时定位下标 changdu = len(temp) #拼成字典 temp_dic = "{'web':'" + web + "','name':'" + name + "','passwd':'" + passwd + "'}" #用列表的insert()方法添加值 temp.insert(changdu + 1, temp_dic) except: #添加过程中中遇到异常时输出异常 #print('添加遇到未知错误!') #返回False return False else: #添加成功了 #print('添加成功!') #返回True txt = open(path + '\\siteinfos.txt','w+') txt.write(str(temp)) txt.close() #print('Bir database updated.') return True while True: try: web = input('请输入网址:') if web != '': if checkrecord(web): print('网址已存在!') #显示当前列表中已存在的该网站的账号 showrecord(web) goon = input('是否继续添加该网站的用户?[y/n](default:y)') if goon == '' or goon == 'y': name = input('请输入账号 :') passwd = input('请输入密码 :') if name != '' and passwd != '': if newtable(web,name,passwd): #提示添加成功 print('添加成功!') #显示当前列表中已存在的该网站的账号 showrecord(web) #提示是否继续添加 goon = input('是否继续添加?[y/n](default:y)') if goon != '' and goon != 'y': print('再见!') break else: print('添加失败!') elif name != '' or passwd != '': print('网址、账号或密码不能为空!') else: print('再见!') break else: print('再见!') break else: name = input('请输入账号 :') passwd = input('请输入密码 :') if name != '' and passwd != '': if newtable(web,name,passwd): #提示添加成功 print('添加成功!') #显示当前列表中已存在的该网站的账号 showrecord(web) #提示是否继续添加 goon = input('是否继续添加?[y/n](default:y)') if goon != '' and goon != 'y': print('再见!') break else: print('添加失败!') elif name != '' or passwd != '': print('网址、账号或密码不能为空!') except KeyboardInterrupt: print('Byte!') break
测试截图: