1.’r’表示只读操作,调用完文件之后要close,否则会持续占据内存
# f = open('d:\log.txt',mode='r',encoding='UTF-8')#绝对路径
# content = f.read()
# print(content)
# f.close()
2.r+ 表示读写操作(最常用),注意:只能先write 后 read
f = open('log', mode = 'r+', encoding = 'utf-8')
f.write('aaa')
print(f.read())#在r+模式下,先写后读,出错
f.close
3.对于w:没有此文件就会创建文件,且是将原文件内容清楚后再写
# f = open('log',mode='w',encoding='utf-8')
# f.write('www')
# f.close()
- seek用来按字节定光标的位置(utf8一个中文字符=3个字节)
read(int)是按字符读(不是字节)
tell是返回光标位置
# obj = open('log',mode='r+',encoding='utf-8')
# content = f.read(3) # 是读前三个字符
# f.seek(3) # 确定光标位置,是第三个字节后,若是utf8中文,则只是一个字
#f.tell() #是返回光标位置
#再使用f.read(),则返回当前光标位置后的文本
5.实现截取,使用 seek移动光标 加read(int)返回光标后若干字符
6.注册登录小程序
#注册
username = input('请输入要注册的用户名:')
password = input('请输入要注册的密码:')
with open('list_of_info',mode='w', encoding='utf-8') as f:
f.write('{}\n{}'.format(username,password)) #使用换行符 #不能write输入两个字符串,故用format
print('恭喜您,注册成功')
#登录
i = 0
lis = []
while i < 3:
usn = input('请输入要注册的用户名:')
pwd = input('请输入要注册的密码:')
with open('list_of_info', mode='r+',encoding = 'utf-8') as f1:
for line in f1:
lis.append(line)
if usn == lis[0].strip() and pwd == lis[1]: #使用strip去除空格和换行符
print('登陆成功')
break
else:
print('账号或密码错误')
i += 1