# 注册:
# 1、账号、密码存到文件
# 2、判断输入是否为空
# 3、校验用户是否存在
# 4、用户名和密码长度在6-12位之间
#将文件读取到字典中
def get_users():
f = open('1.txt', 'r', encoding='UTF-8')
user = {}
f.seek(0)
for line in f:
if line != '': #排除行为空的情况
key,value = line.strip().split(',')
user[key] = value
f.close()
return user
user = get_users()
print(user)
for i in range(3):
user_name = input('请输入用户名:').strip()
psw = input('请输入密码:').strip()
psw2 = input('确认密码:').strip()
if user_name in user.keys(): #获取键值对中的key
print('用户名已存在')
elif len(user_name) > 12 or len(user_name) < 6 or len(psw) > 12 or len(psw) < 6 or len(psw2) > 12 or len(psw2) < 6:
print('用户名或密码长度有误')
elif psw2 != psw:
print('两次输入密码不同')
elif i == 2:
print('机会已用完')
else:
user[user_name] = psw
f = open('1.txt', 'w+', encoding='UTF-8')
for key in user:
f.write(key)
f.write(',')
f.write(user[key])
f.write('\n')
f.close()
f = open('1.txt', 'r', encoding='UTF-8')
print(f.read())
f.close() # 登录:
# 1、最多错误3次
# 2、判断输入是否为空
# 3、校验用户是否存
# 4、用户名登录的时候不区分大小写
for i in range(3):
username = input('请输入用户名').strip()
password = input('请输入密码').strip()
if len(username) == 0 or len(password) == 0:
print('存在必填项为空')
elif username not in user.keys():
print('用户名或密码错误')
elif password != user[username]:
print('用户名或密码错误')
else:
print('恭喜你,登录成功'+username) #非空即真 非零即真

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. 自定义jqGrid编辑功能,当行获取焦点时编辑,失去焦点时保存

    http://www.360doc.com/content/17/0719/15/9200790_672577533.shtml /********************************** ...

  2. hdu 3790 最短路径dijkstra(多重权值)

    最短路径问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  3. 第十三篇Django Logging配置样例

    第十三篇Django Logging配置样例 阅读目录(Content) Django 日志配置模板 官方链接 Django Logging Django 日志配置模板 LOGGING = { 've ...

  4. Mapper method 'com.xxxx.other.dao.MyDao.getNo attempted to return null from a method with a primitive return type (int)

    使用myBatis调用存储过程的返回值,提示错误信息: org.apache.ibatis.binding.BindingException: Mapper method 'com.xxxx.othe ...

  5. HDU 5282:Senior's String

    Senior's String  Accepts: 30  Submissions: 286  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit ...

  6. oracle查询语句注意事项:

    我想查出datatype 不等于1的所有结果,包括空. '; //这条sql查不出datatype为空的数据 发现oracle需要使用  is  null  .is  not null查询空或非空 ' ...

  7. C++ STD Gems04

    count.count_if.all_of.any_of.none_of #include <iostream> #include <vector> #include < ...

  8. 大二暑假第一周总结--初次安装配置Hadoop

    本次配置主要使用的教程:http://dblab.xmu.edu.cn/blog/install-hadoop-in-centos/ 以下是自己在配置中的遇到的一些问题和解决方法,或者提示 一.使用虚 ...

  9. matlab中自带的sobol的函数提供的sobol序列

    clc; clear all; close all; M=;% 维度,几个参数 nPop=; VarMin=[0.6, 0.10, 0.002, 0.02, 0.17, 0.0, 0.17, 0.0, ...

  10. package跨模块调用

    module包 logger模块 def logger(): print("logger") # logger() main模块 from module import logger ...