文件处理,注册,登入,with

文件处理

什么是文件处理

修改存储的信息

什么是文件

操作系统提供的虚拟概念,存储信息(用二进制存储信息)

打开文件

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('登入失败')

文件修改

文件没有修改一说,只有覆盖.

猜你喜欢

转载自www.cnblogs.com/793564949liu/p/11545113.html