一听到文件操作大家肯定会第一时间想到with open哈哈哈哈,对的,因为太常用了。那么接下来咱总结一下吧!
with open('python基础.txt','r', encoding='utf-8') as f:
pass # 文件操作子代码
open()里面的一些参数讲解:
第一个:需要打开的文件路径
第二个:读写模式(有三种)
第三个:指定编码格式
读写模式
r read 只读模式
w write 只写模式
a append 只追加模式
文件操作模式有两种
文本模式 t
二进制模式 b
文件操作方法
1.read()
一次性读取文件内容 并且光标停留在文件末尾 继续读取则没有内容
并且当文件内容比较多的时候 该方法还可能会造成计算机内存溢出
括号内还可以填写数字 在文本模式下 表示读取几个字符
2.for循环
一行行读取文件内容 避免内存溢出现象的产生
3.readline()
一次只读一行内容
4.readlines()
一次性读取文件内容 会按照行数组织成列表的一个个数据值
5.readable()
判断文件是否具备读数据的能力
6.write()
写入数据
7.writeable()
判断文件是否具备写数据的能力
8.writelines()
接收一个列表 一次性将列表中所有的数据值写入
9.flush()
将内存中文件数据立刻刷到硬盘 等价于ctrl + s
有个登录案例(利用文件操作实现的,可以通过案例再次练习文件操作)
"""
利用文件充当数据库编写用户登录、注册功能
文件名称:userinfo.txt
基础要求:
用户注册功能>>>:文件内添加用户数据(用户名、密码等)
用户登录功能>>>:读取文件内用户数据做校验
ps:上述功能只需要实现一次就算过关(单用户) 文件内始终就一个用户信息
拔高要求:
用户可以连续注册
用户可以多账号切换登录(多用户) 文件内有多个用户信息
ps:思考多用户数据情况下如何组织文件内数据结构较为简单
提示:本质其实就是昨天作业的第二道题 只不过数据库由数据类型变成文件
"""
while True:
print("""
1. register
2. login
""")
choice = input('input choice number>>>:').strip()
if choice == '1':
print('Welcome to register')
# 首先获取用户输入
username = input('username>>>:').strip()
password = input('password>>>:').strip()
# 其次校验用户输入
with open('userinfo.txt', 'r', encoding='utf-8') as f:
for line in f:
real_username, real_password = line.split('|')
if username == real_username:
print('This username exist already')
break
else:
with open('userinfo.txt', 'w', encoding='utf-8') as f1:
f1.write(f'{username}|{password}\n')
print(f'Hello {username}, good to see you')
# 保存到文件中
elif choice == '2':
print('Welcome to login')
# 获取用户输入
username = input('username>>>:').strip()
password = input('password>>>:').strip()
# 校验用户名和密码
with open('userinfo.txt', 'r', encoding='utf-8') as f2:
for line in f2:
real_username, real_password = line.split('|')
if username == real_username and password == real_password.strip('\n'):
print(f'Welcome {username}')
else:
print('wrong number')
标签:username,文件,用户,print,real,操作,password
From: https://www.cnblogs.com/almira998/p/17264701.html