一、文件操作
1. 只读
1) r
以str形式
f = open('d:\文件操作.txt',mode='r',encoding='utf-8') # r是默认的 content=f.read() print(content,type(content)) f.close()
2) rb
#b 表示以bytes形式(bytes类型是以字节为单位处理的,非文字文件上传下载)
f = open('d:\文件操作.txt',mode='rb') content=f.read() print(content) f.close()
2. 只写
# 没有文件就创建文件去写,有源文件将源文件内容覆盖
1) w
#str形式
f = open('log',mode='w',encoding='utf-8') f.write('恢复') f.close()
2) wb
#以bytes形式(bytes类型是以字节为单位处理的,非文字文件上传下载)
f = open('log',mode='wb') f.write('粉红色'.encode('utf-8')) f.close()
3. 追加
1) a
f = open('log',mode='a',encoding='utf-8') f.write('哈喽') f.close()
2) ab
f = open('log',mode='ab',) # b 表示以bytes形式(bytes类型是以字节为单位处理的,非文字文件上传下载)
f.write('哈喽哈喽'.encode('utf-8'))
f.close()
4. 先读后写
1) r+
最常用
f = open('log',mode='r+',encoding='utf-8') print(f.read()) f.write('哈喽哈喽') f.close()
2) r+b 以bytes的形式
f = open('log',mode='r+b') print(f.read()) f.write('哈喽哈喽'.encode('utf-8')) f.close()
5. 先写后读
1) w+
先把原内容清除,再去写
f = open('log',mode='w+',encoding='utf-8') f.write('哈喽哈喽') f.seek(0) #读光标 print(f.read()) f.close()
2) w+b
以bytes的形式(bytes类型是以字节为单位处理的)
f = open('log',mode='w+b') f.write('哈喽哈喽'.encode('utf-8'))
f.seek(0)
print(f.read())
f.close()
6. 追加后读
1) a+
f = open('log',mode='a+',encoding='utf-8') f.write('哈喽哈喽') f.seek(0) #读光标 print(f.read()) f.close()
2) a+b
f = open('log',mode='a+b') f.write('哈喽哈喽'.encode('utf-8')) f.seek(0) #读光标 print(f.read()) f.close()
二、练习题
用户登录,三次机会
username=input('请输入用户名:') password=input('请输入密码:') info_list=[] with open('user_info',mode='w',encoding='utf-8') as f: f.write('{}\n{}'.format(username,password)) i=0 while i<3: usn=input('请输入用户名:') pwd=input('请输入密码:') with open('user_info',mode='r+',encoding='utf-8') as f1: for info in f1: info_list.append(info) if usn == info_list[0].strip() and pwd == info_list[1].strip(): print('登陆成功!') break else: print('账号或密码错误!') i+=1