#
# 一、实现用户注册功能
# 思路:
# 用户输入用户名、密码
# 将用户输入的内容按照固定的格式,比如:egon:123,存入文件
# 可以往一个文件中重复注册新的用户名和密码
# 附加:
# 1、对输入的用户名进行合法性监测,不能以数字开头,且如果输入的用户名已存在于文件中则要求用户重新输入
# 2、对输入的密码进行合法性监测,密码的长度至少6位,并且不能包含特殊字符*&$
# y=[]
# print('注册请填写以下信息')
# tag=True
# with open(r'db.txt', mode='rt', encoding='utf-8')as x:
# for data_name in x:
# d_name = data_name.strip('\n').split(':')
# y.append(d_name[0])
# # print(y)
# while tag:
# name = input('username>>>').strip()
# if name[0].isdigit():
# print('不能以数字开头,请重新输入')
# continue
# if name in y:
# print('已被注册,请重新输入')
# continue
# while tag:
# pwd = input('password>>>').strip()
# if len(pwd)<6:
# print('密码的长度至少6位')
# continue
# if pwd.find('$') != -1:
# print('不能包含特殊字符*&$')
# continue
# else: print('注册成功')
# with open(r'db.txt', mode='at', encoding='utf-8')as f:
# data = '%s:%s\n' % (name, pwd)
# f.write(data)
# tag = False # 二、实现用户验证功能更:
# 思路:
# 用户输入账号密码,从文件中读出账号密码,与用户输入的进行比对
# 附加:新建黑名单文件,同一个账号名输错三次则将用户名写入黑名单文件中,
# 如果用户输入的用户名存在于黑名单中则直接退出 # y=[]
# z=[]
# b=[]
# tag=True
# count=0
# with open(r'db.txt', mode='rt', encoding='utf-8')as x,open(r'black.txt', mode='rt', encoding='utf-8')as a:
# for data_name in x:
# d_name = data_name.strip('\n').split(':')
# y.append(d_name[0])
# z.append(d_name[1])
# for data_black_name in a:
# b_name = data_black_name.strip('\n')
# b.append(b_name)
# while tag:
# name=input('username>>>').strip()
# if name in b:
# print('黑名单用户')
# break
# if name not in y:
# print('用户名不存在')
# continue
# while tag:
# pwd = input('password>>>').strip()
# if count>=2:
# print('输错三次,已列为黑名单')
# with open(r'black.txt',mode='at',encoding='utf-8') as f:
# f.write('%s\n' %name)
# tag = False
# break
# if pwd not in z:
# print('密码不存在')
# count+=1
# else:
# print('登录成功')
# tag=False # y=[]
# z=[]
# b=[]
# tag=True
# count=0
# with open(r'db.txt', mode='rt', encoding='utf-8')as x,open(r'black.txt', mode='rt', encoding='utf-8')as a:
# for data_name in x:
# d_name = data_name.strip('\n').split(':')
# y.append(d_name[0])
# z.append(d_name)
# print(z)
# for data_black_name in a:
# b_name = data_black_name.strip('\n')
# b.append(b_name)
# while tag:
# name=input('username>>>').strip()
# if name in b:
# print('黑名单用户')
# break
# if name not in y:
# print('用户名不存在')
# continue
# while tag:
# pwd = input('password>>>').strip()
# if count>2:
# print('输错三次,已列为黑名单')
# with open(r'black.txt',mode='at',encoding='utf-8') as f:
# f.write('%s\n' %name)
# tag = False
# break
# if [name,pwd] not in z:
# print('密码不存在')
# count+=1
# else:
# print('登录成功')
# tag=False

PYTHON-文件处理-练习的更多相关文章

  1. Linux下Python 文件内容替换脚本

    Linux下Python 文件替换脚本 import sys,os if len(sys.argv)<=4: old_text,new_text = sys.argv[1],sys.argv[2 ...

  2. 【Python文件处理】递归批处理文件夹子目录内所有txt数据

    因为有个需求,需要处理文件夹内所有txt文件,将txt里面的数据筛选,重新存储. 虽然手工可以做,但想到了python一直主张的是自动化测试,就想试着写一个自动化处理数据的程序. 一.分析数据格式 需 ...

  3. Python文件使用“wb”方式打开,写入内容

    Python文件使用"wb"方式打开,写入字符串会报错,因为这种打开方式为:以二进制格式打开一个文件只用于写入.如果该文件已存在则将其覆盖.如果该文件不存在,创建新文件. 所以写入 ...

  4. Python 文件操作函数

    这个博客是 Building powerful image classification models using very little data 的前期准备,用于把图片数据按照教程指示放到规定的文 ...

  5. python文件I/O(转)

    Python 文件I/O 本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档. 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把你 ...

  6. python 文件操作总结

    Python 文件I/O 本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档. 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把你 ...

  7. Python基础篇【第2篇】: Python文件操作

    Python文件操作 在Python中一个文件,就是一个操作对象,通过不同属性即可对文件进行各种操作.Python中提供了许多的内置函数和方法能够对文件进行基本操作. Python对文件的操作概括来说 ...

  8. python文件和元组

    python文件操作 相较于java,Python里的文件操作简单了很多 python 获取当前文件所在的文件夹: os.path.dirname(__file__) 写了一个工具类,用来在当前文件夹 ...

  9. Python文件基础

    ===========Python文件基础========= 写,先写在了IO buffer了,所以要及时保存 关闭.关闭会自动保存. file.close() 读取全部文件内容用read,读取一行用 ...

  10. python文件打包格式,pip包管理

    1..whl是python文件的一种打包格式, 在有些情况下,可以将文件的后缀名改为.zip并解压 2.cmd中,提示pip版本太低,先升级pip   pip install --upgrade pi ...

随机推荐

  1. (转)使用 Spring缓存抽象 支持 EhCache 和 Redis 混合部署

    背景:最近项目组在开发本地缓存,其中用到了redis和ehcache,但是在使用注解过程中发现两者会出现冲突,这里给出解决两者冲突的具体方案. spring-ehcache.xml配置: <?x ...

  2. MyEclipse添加模板注释

    只有两个步骤: 1.设置模板 Windows—Preference—Java—Code Style—Code Templates 图中, Configure generated code and co ...

  3. My thoughts after NOIP 2018(2)

    又一次陷入迷茫了呢. - 大概是因为是因为自招政策要改变了吧? - 大概是因为前路在一点一点变得难走吧? - 大概是因为OI和学习实在太难平衡了吧? 未来的一切都已经不再在我控制的范围之内,不迷茫才怪 ...

  4. WCF开发实战系列五:创建WCF客户端程序

    WCF开发实战系列五:创建WCF客户端程序 (原创:灰灰虫的家http://hi.baidu.com/grayworm) 在前面的三篇文章中我们分别介绍了WCF服务的三种载体:IIS.Self-Hos ...

  5. Spring_bean的实例化时机

    前言:创建Java对象 public class User { private String name; private Integer age; public User() { System.out ...

  6. SQL连接服务器链接失败

    链接服务器"AGPSServer"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "登录超时已过期".链接服务器" ...

  7. vue确认密码

    rules: { pwd:[{ required:true, message:'创建密码',trigger:'blur' }], cpwd:[{ required:true,message:'确认密码 ...

  8. ipython 编辑器 jupyter notebook如何将 ipynb 转成 py 并在 jupyter notebook 中继续引用

    首先将 要被做成 module 的 ipython 代码 download as py 然后将 down 下来的 py 文件上传至 work 目录(也就是编写导入模块的py文件目录) 这部分 的 wo ...

  9. 解决从本地文件系统上传到HDFS时的权限问题

    当使用 hadoop fs -put localfile /user/xxx 时提示: put: Permission denied: user=root, access=WRITE, inode=& ...

  10. ARMCortex系列仿真调试器

    主流的调试工具1.  J-LinkJ-Link是最著名的ARM开发调试工具,J-Link由SEGGER公司生产.提供对市面上几乎所有ARM内核芯片的支持.目前最新版本的J-Link产品为V8,支持JT ...