文件处理
什么是文件处理
修改存储的信息
什么是文件
操作系统提供的虚拟概念,存储信息(用二进制存储信息)
打开文件
f = open(r'文件路径','打开模式',encoding='某种编码')
修改文件
f.write()
保存文件
f.flush()
关闭文件
f.close()
文件的三种打开模式
r:读取模式
f.read() #读取所有文本内容
f.readline() #一行一行读取
w:清空写入模式
f.write()
a:追加写入
f.write
encoding指定读取/写入文件的编码格式
打开文件的两种方式
t:文本
用于文本类文件
与r/w/a连用,不用加encoding
d:二进制
用于音频类文件
与r/w/a连用,不用加encoding
文件路径
绝对路径
从盘符开始 D:\ss\ss\ss.txt
相对路径
和执行文件同属一个文件夹下(写项目尽量用相对路径)
with管理文件上下文
whit提供一个自动关闭文件的功能,解除了操作系统的占用.
with open('文件路径','打开模式',encoding='编码格式') as f:
pass
文件高级应用
r+:可读可写,覆盖式写入
w+:可读可写,清空写入
a+:可读可写,默认光标在后面,无法读光标之后的数据
光标的移动
==英文==一个字节一个字符,==中文==三个字节一个字符
seek
seek(n) #移动了n个字节,默认从头开始
whence
规定只有(0,1,2)三种模式,0是文件头开始,1是文件所在位置开始,2文件尾开始
tell
告诉你当前所在位置
truncate
truncate(n) #n为几就保留前几位
read
移动光标,以字符为单位,n为字符数,不写默认全部.
注册
count = 0
while count < 3:
uname = input('输入名字:')
upwd = input('输入密码:')
upwd_inp = input('再次输入密码:')
if not upwd == upwd_inp:
print('俩次密码不一致')
count += 1
continue
with open(r'jsb.txt','a',encoding='utf8')as fa:
fa.write(f'{uname}:{upwd}\n')
fa.flush()
break
登入
uname = input('输入名字:')
upwd = input('输入密码:')
with open(r'jsb.txt','r',encoding='utf8')as fr:
for jsb in fr:
name,pwd = jsb.split(':')
if name.strip() == uname and pwd.strip == upwd :
print('登入成功')
break
else:
print('登入失败')
文件修改
文件没有修改一说,只有覆盖.