文件操作
如何打开一个文件
1.文件路径
2.编码方式:utf-8 gbk
3.操作方式:只读,只写,追加,写读,读写
练习
以什么方式储存的文件就要以什么形式打开,比如gbk
f = open('d:\马圣德.txt', mode='r', encoding='gbk')
content = f.read()
print(content)
f.close()
只读:r
rb:打开或读取图片等非文字文件
f = open('d:\马圣德.txt', mode='rb')
content = f.read()
print(content)
f.close()
只写:w
第一步:删除原文件内容全部清除
第二步:将你写内容添加到文件中
若没有此文件则创建文件
f = open('马圣德', mode='w', encoding='gbk')
f.write('山东人')
f.close()
wb:
f = open('马圣德', mode='wb')
f.write('山东人'.encode('utf-8'))
f.close()
追加:a
f = open('马圣德', mode='a', encoding='utf-8')
f.write('中国人')
f.close()
ab:以Bytes类型追加进入
f = open('马圣德', mode='ab')
f.write('很强'.encode('utf-8'))
f.close()
读,写
先读后改
f = open('马圣德', mode='r+', encoding='utf-8')
print(f.read())
f.write('马圣德')
f.close()
先改后写
f = open('马圣德', mode='r+', encoding='gbk')
f.write('你')
print(f.read())
f.close()
写,读
先清除后写
f = open('马圣德', mode='w+', encoding='gbk')
f.write('哈哈')
print(f.read())
f.close()
2.a+
f = open('马圣德', mode='a+', encoding='gbk')
f.write('哈哈')
print(f.read())
f.close()
功能详解
read
按字符走
f = open('马圣德', mode='r+', encoding='gbk')
content = f.read(3)
print(content)
f.close()
seek
按字节走
f = open('马圣德', mode='r+', encoding='gbk')
f.seek(4)
content = f.read()
print(content)
f.close()
tell()
告诉你光标的位置
f = open('马圣德', mode='r+', encoding='gbk')
f.seek(4)
ad = f.tell()
print(ad)
f.close()
readline()
一行行的读
f = open('马圣德', mode='r+', encoding='gbk')
line = f.readline()
print(line)
f.close()
readlines()
每一行当成列表中的一个元素然后添加到列表中
f = open('马圣德', mode='r+', encoding='gbk')
line = f.readlines()
print(line)
f.close()
for循环读取文件
f = open('马圣德', mode='r+')
for line in f:
print(line)
f.close()
with
不用写close
with open('马圣德', mode='r+') as f:
print(f.readline())
案例
1.注册登入(自己写的)
user = input('请注册账号')
pwd = input('请注册密码')
with open('账号', mode='r+') as f1,\
open('密码', mode='r+') as f2:
f1.write(user)
f1.seek(0)
index_user = f1.read()
f2.write(pwd)
f2.seek(0)
index_pwd = f2.read()
login_user = input('请输入账号')
login_pwd = input('请输入密码')
if login_user == index_user and login_pwd == index_pwd:
print('登入成功')
else:
print('登入失败')
老师写的
user = input('请注册账号')
pwd = input('请注册密码')
with open('zhanghaomima', mode='w') as f:
f.write('{}\n{}'.format(user, pwd))
print('注册成功!')
lis = []
i = 0
while i < 3:
uname = input('请输入账号')
upwd = input('请输入密码')
with open('zhanghaomima', mode='r+') as f1:
for line in f1:
lis.append(line)
if uname == lis[0].strip() and upwd == lis[1].strip():
print('登入成功')
break
else:
print('登入失败')
i = i + 1