打开文件的模式有三种纯净模式:r(默认的) w a
# 控制操作文件内容格式的两种模式:t(默认的) b
# 大前提: tb模式均不能单独使用,必须与纯净模式结合使用
# t文本模式:
# 1. 读写文件都是以字符串为单位的
# 2. 只能针对文本文件
# 3. 必须指定encoding参数
# b二进制模式:
# 1.读写文件都是以bytes/二进制为单位的
# 2. 可以针对所有文件
# 3. 一定不能指定encoding参数
# 二 打开文件模式详解
#1. w只写模式: 在文件不存在时会创建空文档,文件存在会清空文件,文件指针跑到文件开头
# with open('b.txt',mode='wt',encoding='utf-8') as f:
# print(f.writable())
# print(f.readable())
# f.write('你好
')
# f.write('我好
') # 强调:在文件不关闭的清空下,后写的内容一定跟着前写内容的后面
# f.write('大家好
')
# f.write('111
222
333
')
# lines=['1111','22222','33333']
# for line in lines:
# f.write(line)
# f.writelines(lines)
用编码写出用户注册功能:
# new_name = input('请输入名字: ').strip() # new_pwd = input('请输入密码: ').strip() # write_file=open(r'file', mode='at',encoding='utf-8') # info='%s:%s ' %(new_name,new_pwd) # write_file.write(info)
#2. r只读模式: 在文件不存在时则报错,文件存在文件内指针直接跳到文件开头
# with open('a.txt',mode='rt',encoding='utf-8') as f:
# print(f.readlines()
用编码写出用户登录功能:
name = input('请输入你的名字: ').strip() pwd = input('请输入你的密码: ').strip() with open(r'D:临时文件作业.txt', mode='rt', encoding='utf-8') as f: for line in f: x, y = line.strip(' ').split(':') if name == x and pwd == y: print('登录成功') break else: print('账号或密码错误')
用编码写出拷贝功能:
file1 = input('请输入原路径: ') file2 = input('请输入目标路径:') with open(r'%s' % file1, mode='rb') as f1, open(r'%s' % file2, mode='ab') as f2: for line in f1: f2.write(line)
用with....as..写文件操作,会自动关闭操作系统中的内存