文件处理

一、注册与登录功能

username = input('请输入您的密码:').strip()
password = input('请输入您的密码:').strip()

f = open('a.txt',mode='rt',encoding='utf-8')
for line in f:
    user,pwd = line.strip('\n').split(':')
    
    if username == user and password = pwd:
        print('登陆成功')
        break
else:
    print('登录失败')
f.close()

二、字符编码

1 什么是字符编码
    人类的字符转换成数字的过程称之为字符编码
    该过程需要参照一张表,该表称之为字符编码表
                        编码
    人类的字符-----------转换成--------------》数字

                        解码
    人类的字符《-----------转换成--------------数字
2 字符编码表
    a--00
    b--01
    c--10
    d--1
    ASCII: 用8bit对应一个英文字符
        可以识别英文字符

    gbk:用16bit对应一个字符
        可以识别中文字符、英文字符

    shift-JIS:
        可以识别日文字符、英文字符
        
    Euc-KR
        可以识别韩文字符、英文字符

    万国字符编码表:unicode,用16bit位对应一个字符
        兼顾两大历史使命
            1、可以识别万国字符
            2、兼容老的字符编码格式

    内存中用的字符编码格式默认都是unicode,而且不能改变
    我们可以改的是存入硬盘的字符编码格式

    万国字符------------》unicode格式的二进制(内存)---------》utf-8格式的二进制(硬盘)
    中文、英文字符------------》unicode格式的二进制(内存)---------》GBK格式的二进制(硬盘)
    日文、英文字符------------》unicode格式的二进制(内存)---------》shift-JIS格式的二进制(硬盘)

    utf-8全称Unicode Transformation Format,
若想保证不乱码
    1、保证存不乱
        存入硬盘的编码格式要能识别输入的字符

    2、保证读不乱
        存取硬盘用得都是同一种字符编码格式

    3、往硬盘存的新文件以后都存成utf-8格式

python3解释器默认读文件的编码格式是utf-8
python3解释器默认读文件的编码格式是ASCII
推荐用python3解释器,因为python3解释器存字符串类型的值会存储unicode格式
如果用到python2解释器,记得在字符串类型前加前缀u

三、 文件的打开模式

文件的打开模式分为两大类
一 控制文件读写内容
t(默认):无论读写都是以字符串为单位的,必须指定encoding参数
b:无论读写都是以bytes为单位的

文件读写操作
r(默认):只读模式
w:只写
a:只写(追加写)

rt wt at
rb wb ab
r:如果不存在则报错,如果文件存在则指针置于文件开头
with open('a.txt',mode='rt',encoding='utf-8') as f:
     print(f.read())
     print('='*50)
     print(f.read())
     for line in f:
         print(line)
    f.write("你好")  # 报错
 w:如果不存在则创建空文档,如果文件存在则清空,指针置于文件开头
with open('a.txt',mode='wt',encoding='utf-8') as f:
     f.write("你好啊1\n")
     f.write("你好啊2\n")
     f.write("你好啊3\n")
    print(f.read())  # 报错


a:如果不存在则创建空文档,如果文件存在则清空,指针置于文件末尾
with open('c.txt',mode='at',encoding='utf-8') as f:
     f.write("你好啊1\n")
     f.write("你好啊2\n")
     f.write("你好啊3\n")
    print(f.read())  # 报错

posted @ 2021-09-08 20:54  迷恋~以成伤  阅读(51)  评论(0)    收藏  举报