#
# 一、实现用户注册功能
# 思路:
# 用户输入用户名、密码
# 将用户输入的内容按照固定的格式,比如: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. 初探typescript

    学习任何知识都不是一蹴而就的.typescript也是如此.今天我们来初步的了解一下typescript的安装与编译.以及基础的语法知识. 第一步:安装ts 第二步:在安装好的文件夹里面,写上ts文件 ...

  2. csp20170304地铁修建_Solution

    ccf20170304地铁修建_Solution 这里最短路为所以从点1到点n的路径中最长的道路的长度. 因为1 ≤ n ≤ 100000,1 ≤ m ≤ 200000,属于稀疏图,所以使用Spfa( ...

  3. Java 搜索引擎

    1.Java 全文搜索引擎框架 Lucene 毫无疑问,Lucene是目前最受欢迎的Java全文搜索框架,准确地说,它是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎.Luc ...

  4. Unity NavMesh导航网格 初级教程

    目的:要实现的功能就是你点击一下地图上的某个地方,人物就向着那个点移动.有点自动寻路的味道.  例子:三国群英传,三国赵云传之类的游戏里面的人物移动就可以用这个实现.还有一个我不太喜欢玩的游戏英雄联盟 ...

  5. JavaSE学习总结(四)——Java面向对象十分钟入门

    面向对象编程(Object Oriented Programming,OOP)是一种计算机模拟人类的自然思维方式的编程架构技术,解决了传统结构化开发方法中客观世界描述工具与软件结构的不一致性问题.Ja ...

  6. golang 的时间格式化操作

    怎么做 简而言之 time.Now().Format("2006-01-02 15:04:05") 你将会获得如同 yyyy-MM-dd hh-mm-ss 这样的输出. 还可以 在 ...

  7. __attribute__的一些相关属性

    __attribute__((format()))  这个format有3个参数. int my(NSString *str,NSString *str1,NSArray*str2,...) __at ...

  8. vue项目 打包部署上线

    1. npm run dev:本地开发的时候做调试用的. 2. npm run build:打包部署上线,生成一个 dist 文件夹. 注意:用 npm run build 时,常遇到因引用路径不对导 ...

  9. 流媒体技术学习笔记之(一)nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器

    参照网址: [1]http://blog.csdn.net/redstarofsleep/article/details/45092147 [2]HLS介绍:http://www.cnblogs.co ...

  10. 自动升级CentOS Python至官方最新版

    #!/bin/bash # .检查当前系统Python版本 python_old_version=$(python -V >& | awk '{print $2}') echo &quo ...