python内置方法三
2021/11/11 17:12:32
本文主要是介绍python内置方法三,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.读写模式之a模式
1.1 a模式含义
只追加模式
1.2路径不存在
路径不存在:自动创建
with open(r'a.txt','a',encoding='utf8') as f: pass
1.3路径存在
路径存在:不会清空文件 在文件末尾添加内容
with open(r'a.txt', 'a', encoding='utf8') as f: f.write('\n今天周四了 马上又要放假了 好开心!')
2.文件操作方法
2.1读系列
with open(r'a.txt', 'r', encoding='utf8') as f: # print(f.read()) # 一次性读取文件内所有的内容 # print(f.readline()) # 每次只读文件一行内容 # print(f.readlines()) # 读取文件所有的内容 组织成列表 每个元素是文件的每行内容 # print(f.readable()) # 判断当前文件是否具备读的能力
2.2写系列
with open(r'a.txt','w',encoding='utf8') as f: # f.write('克服一切困难 奥利给!') # 往文件内写入文本内容 # f.write(123) # 写入的内容必须是字符串类型 # f.writelines(['jason','kevin','tony']) # 可以将列表中多个字符串元素全部写入 # print(f.writable()) # True # print(f.readable()) # False f.flush() # 直接将内存内文件数据刷到硬盘 相当于ctrl+s
3.文件优化操作
with open(r'a.txt', 'r', encoding='utf8') as f: # print(f.read()) # 一次性读取文件内所有的内容 # print(f.read()) # 一次性读取文件内所有的内容 # print(f.read()) # 一次性读取文件内所有的内容 """ 1.一次性读完之后 光标停留在了文件末尾 无法再次读取内容 2.该方法在读取大文件的时候 可能会造成内存溢出的情况 解决上述问题的策略就是逐行读取文件内容 """ # for line in f: # 文件变量名f支持for循环 相当于一行行读取文件内容 # line '''以后涉及到多行文件内容的情况一般都是采用for循环读取'''
4.课堂练习
1.简易版本的注册、登陆功能 普通要求(实现一次即可) 注册功能 获取用户名和密码组织成你喜欢的样子写入文件即可 登陆功能 获取用户名和密码然后比对是否与文件内用户数据一致 # 注册功能 # 1.获取用户用户名和密码 username = input('username>>>:').strip() password = input('password>>>:').strip() # 2.将用户名和密码组织成一个字符串 data = '%s|%s' % (username, password) # 3.文件操作 写入数据 with open(r'userinfo.txt', 'w', encoding='utf8') as f: f.write(data) print('用户:%s 注册成功' % username) # 注册功能 # 1.获取用户用户名和密码 username = input('username>>>:').strip() password = input('password>>>:').strip() # 2.将用户名和密码组织成一个字符串 data = '%s|%s' % (username, password) # 3.文件操作 写入数据 with open(r'userinfo.txt', 'w', encoding='utf8') as f: f.write(data) print('用户:%s 注册成功' % username) # 登录功能 # 1.获取用户名和密码(先使用input获取用户输入的数据 然后strip()移除首尾空格 之后赋值给变量名username) username = input('username>>>:').strip() password = input('password>>>:').strip() # 2.获取文件内真实的用户数据 with open(r'userinfo.txt','r',encoding='utf8') as f: # 由于现在文件中只有一行内容 我们干脆直接读取完 data = f.read() # 'jason|jason123' '''with子代码执行完之后的结果是可以在外面使用的''' # 3.切割字符串获取真实的用户名和密码 res = data.split('|') # ['jason', 'jason123'] '''这里也可以直接使用解压赋值的操作 real_name,real_pwd = data.split('|')''' # 4.比对数据 if username == res[0] and password == res[1]: print('登录成功') else: print('用户名或密码错误')
5.进阶练习
# 多用户注册 # while True: # # 1.获取用户用户名和密码 # username = input('username>>>:').strip() # password = input('password>>>:').strip() # # 2.将用户名和密码组织成一个字符串 # data = '%s|%s\n' % (username, password) # # 2.1.判断用户名是否已存在 # with open(r'userinfo.txt', 'r', encoding='utf8') as f1: # # 2.2.循环读取每一行用户数据 # for line in f1: # # 2.3.获取每一行数据中的用户名 # real_name, real_pwd = line.split('|') # # 2.4.判断用户名是否一致 # if username == real_name: # print('用户名已存在') # break # else: # # 3.文件操作 写入数据 # with open(r'userinfo.txt', 'a', encoding='utf8') as f: # f.write(data) # print('用户:%s 注册成功' % username) # 多用户登录 # 1.获取用户名和密码(先使用input获取用户输入的数据 然后strip()移除首尾空格 之后赋值给变量名username) username = input('username>>>:').strip() password = input('password>>>:').strip() # 2.获取文件内真实的用户数据 with open(r'userinfo.txt', 'r', encoding='utf8') as f: for line in f: # 3.切割字符串获取真实的用户名和密码 '''注意密码末尾有\n''' real_name, real_pwd = line.split('|') # ['jason', 'jason123\n'] # 4.比对用户名和密码是否正确 if username == real_name and password == real_pwd.strip('\n'): print('登录成功') break else: print('用户名或密码错误')
6.代码整合
while True: print(""" 1.用户注册 2.用户登录 """) choice = input('请输入您想要执行的功能编号>>>:').strip() if choice == '1': # 1.获取用户用户名和密码 username = input('username>>>:').strip() password = input('password>>>:').strip() # 2.将用户名和密码组织成一个字符串 data = '%s|%s\n' % (username, password) # 2.1.判断用户名是否已存在 with open(r'userinfo.txt', 'r', encoding='utf8') as f1: # 2.2.循环读取每一行用户数据 for line in f1: # 2.3.获取每一行数据中的用户名 real_name, real_pwd = line.split('|') # 2.4.判断用户名是否一致 if username == real_name: print('用户名已存在') break else: # 3.文件操作 写入数据 with open(r'userinfo.txt', 'a', encoding='utf8') as f: f.write(data) print('用户:%s 注册成功' % username) elif choice == '2': # 1.获取用户名和密码(先使用input获取用户输入的数据 然后strip()移除首尾空格 之后赋值给变量名username) username = input('username>>>:').strip() password = input('password>>>:').strip() # 2.获取文件内真实的用户数据 with open(r'userinfo.txt', 'r', encoding='utf8') as f: for line in f: # 3.切割字符串获取真实的用户名和密码 '''注意密码末尾有\n''' real_name, real_pwd = line.split('|') # ['jason', 'jason123\n'] # 4.比对用户名和密码是否正确 if username == real_name and password == real_pwd.strip('\n'): print('登录成功') break else: print('用户名或密码错误') else: print('没有改功能 爱咋滴咋滴!')
7.文件操作模式
7.1文本模式
t 文本模式 1.默认的模式 r w a >>> rt wt at 2.该模式所有操作都是以字符串基本单位(文本) 3.该模式必须要指定encoding参数 4.该模式只能操作文本文件
7.2二进制模式
b 二进制模式 1.该模式可以操作任意类型的文件 2.该模式所有操作都是以bytes类型(二进制)基本单位 3.该模式不需要指定encoding参数 rb wb ab
这篇关于python内置方法三的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24Python编程入门指南
- 2024-12-24Python编程基础入门
- 2024-12-24Python编程基础:变量与数据类型
- 2024-12-23使用python部署一个usdt合约,部署自己的usdt稳定币
- 2024-12-20Python编程入门指南
- 2024-12-20Python编程基础与进阶
- 2024-12-19Python基础编程教程
- 2024-12-19python 文件的后缀名是什么 怎么运行一个python文件?-icode9专业技术文章分享
- 2024-12-19使用python 把docx转为pdf文件有哪些方法?-icode9专业技术文章分享
- 2024-12-19python怎么更换换pip的源镜像?-icode9专业技术文章分享