python文件操作
1. 文件的类型
文本类型: 需要能够看的懂(文字), 指定正确的编码
编码:
utf-8
gbk
latin1 (英文)
big5 (繁体)
二进制类型: 直接能够运行的文件就是二进制文件(内容: 二进制)
2. 文件的作用:
目的 永久的保存数据不丢失
3. 文件操作的步骤:
3.1打开文件
fp = open(文件路径,打开方式,encoding=“编码方式”)
打开方式:
文本操作: r(读) w(覆盖写, 自动创建) a(追加, 自动创建)
二进制操作: rb wb ab (读写追加二进制文件)
3.2读写文件
读:
fp.read() : 读完
fp.read(number): 读取指定个数字符
fp.readline(): 一次读一行
fp.readlines(): 按行读取所有
fp=open("../user.txt","r",encoding="utf-8")
data=fp.read()
print(data)
写:
fp.write(数据)
fp.writelines([列表]): 写入多条数据(不换行)
fp=open("../data.txt","w",encoding="utf-8")#覆盖
num=fp.write("你好彭于晏")
print(num)#返回修改数字
fp.close()
fp=open("../data.txt","a",encoding="utf-8")#追加
fp.writelines(["\n你好","我好","大家好","好好好"])
fp.close()
3.3关闭文件
fp.close()
- 循环读取文件内容 (解决大文件读取问题)
data = fp.read(1024)
while data: # 其他类型的数据也可以当作布尔值
# 操作data
# 继续读
data = fp.read(1024)
案例:
需求:
程序启动,提示用户登录或者注册
选择注册->要求输入用户名和密码->返回注册提示信息
选择登录->要求输入用户和密码->判断是否登录成功
while True:
print("""
欢迎
1 登录
2 注册
0 退出
""")
num=int(input("请选择功能序号:"))
if num==1:
print("欢迎进入登录页面!")
# 要求输入用户名和密码
name = input("请输入用户名:")
paw = input("请输入用户密码:")
# 判断是否登录成功
# 读取文件内容进行
# 打开文件
fp = open("./user.txt", "r", encoding="utf-8")
# 一行一行读取 使用循环
data = fp.readline() # 先读一次
# print(data)彭于晏|123456
while data:
# 对比
user = data.strip().split("|") # 去除空格和分隔
# print(user)#['彭于晏', '123456']
if user[0] == name and user[1] == paw:
print(f"欢迎你{name}")
break # 结束循环
# 继续读
data = fp.readline() # 循环体,
else:
print("用户名或密码错误")
# 关闭
fp.close()
# 登录成功就提示
# 失败提示
elif num==2:
print("欢迎进入注册页面!")
#要求输入用户名和密码
name=input("用户名:")
paw=input("密码:")
#打开文件
fp=open("./user.txt","a",encoding="utf-8")
#写文件
fp.writelines(f"{name}|{paw}\n")
#关闭
fp.close()
# 返回注册提示信息
print(f"{name}注册成功")
elif num==0:
print("欢迎下次光临~")
break
else:
print("请输入正确序号")
冲冲冲!!!