• 第三章:字符编码 文件操作


    第三章 python基础-字符编码 文件操作
    1,计算机系统:
    应用程序(应用软件)
    操作系统
    计算机硬件
    cpu:具体运行程序的
    内存:IO读写速度快,掉电数据消失
    硬盘:读写速度慢,但是掉电数据不消失
    2,文本编辑器读文件nodepad++
    1 先启动nodepad++
    2,将硬盘中的文件内容读入内存
    3,打印到屏幕
    3,运行一个Python 程序;python test.py
    1,先启动python解释器
    2,将test.py的内容读入内存
    3,解释执行(此时才有python 语法的概念)
    4,什么是字符编码?
    人类字符与数字的对应表就是字符编码表
    5,字符编码
    ASCLL:只有英文还有键盘上所有的符号与数字的对应
    每个英文字符对应8位 对应8bit也就是1bite,一个字节
    GBK:中文,英文与数字的对应表
    中文字符对应16位bit,也就是2bite,两个字节
    英文字符还是8位,一个字节,1bite
    unicode:万国编码
    2bytes 代表一个字符,无论是英文还是中文
    utf-8:
    一个英文字符用的是1个字节
    一个中文字符用的是2个字节
    6,字符编码结论:
    python3解释器默认的读取py文件的编码utf-8
    python2解释器默认的读取py文件的编码ASCLL
    可以通过修改文件头的方式,修改默认的字符编码
    #coding:utf-8
    x=u'上'###########存成unicode的格式,避免乱码的问题
    在很多python2中会用这种格式
    unicode--------编码encode---------->GBK 或者其他格式的编码
    GBK 或者其他格式的编码------解码decode-----》unicode

    文件处理

    文件对象=open(文件的路径,mode=文件的打开方式,encoding=字符编码)
    ###强调:下述操作,设计两方面的资源
    #1,操作系统需要打开文件(占用内存的资源)
    #2,f就是一个python的变量(占用应用程序的资源)
    方式一:这个结尾必须要有关闭close不然会占用资源,对文件操作结束之后要及时释放掉
    # f=open(r'D:pythonstudyexeciseaaa.txt',mode='r',encoding='utf-8')
    # date=f.read()
    # print(date)
    # f.close()
    方式二:这种方式不需要先写开始再写关闭
    with open(r'D:pythonstudyexeciseaaa.txt',mode='r',encoding='utf-8') as f:
    date=f.read()
    print(date)

    文件的打开模式:
    r :默认的打开模式,只读模式
    文件存在,正常打开读,文件不存在,则报错
    # with open('aaa.txt',mode='r',encoding='utf-8') as f:
    # # print(f.readable())
    # # # print(f.writedable())
    # # # f.write('ihucaisuh')
    # # print('第一次读')
    # # print(f.read())
    # # print('第二次读')
    # # print(f.read())
    # with open('aaa.txt',mode='r',encoding='utf-8') as f:
    # print(f.readable())
    # # print(f.writedable())
    # # f.write('ihucaisuh')
    # print('第一次读')
    # print(f.readline())
    # print('第二次读')
    # print(f.readline())
    # print('第三次读')
    # print(f.readline())
    # print('第四次读')
    # print(f.readline())
    换行符:在python中 换行符,统统用

    w:只写模式,文件存在,则清空,文件不存在,则创建
    # with open('ccc.txt', mode='w', encoding='utf-8') as f:
    # print(f.readable())
    # f.write('你好啊 孙志平 ')
    # f.write('你好啊 胡湘 ')
    # inf = ['egon', 'sasxas','sdcsdcs','ecdsccxsdc','scsdcds' ]
    # f.write(inf[0]+' ')
    # f.write(inf[1])
    # print(f.writedable())
    # f.write('ihucaisuh')


    # with open('eee.txt', mode='w', encoding='utf-8') as f:
    # inf = ['egon', 'sasxas', 'sdcsdcs', 'ecdsccxsdc', 'scsdcds']
    # # for i in inf:
    # # # f.write(i+' ')
    # f.writelines(inf)

    a模式:只追加写模式
    文件不存在,则创建,
    文件存在,则打开,指针自动移到文件末尾
    # with open ('access.log',mode='a',encoding='utf-8') as f:
    # print(f.readable())
    # print(f.writable())
    # f.write('777777 ')
    # f.write('888888 ')
    # f.write('999999 ')
    # inf=['1111','2222','3333','44444','5555','666']
    # f.writelines(inf)

    在 r w a 后面加一个+表示既可以读,又可以写

    #控制文件读写单位的有两种模式:
    1,t:默认的模式(text文本)
    2,b:二进制模式,(bytes)该模式下不能指定encoding参数
    该模式下读写都是bytes
    如果要求跨平台性好,用b模式

    总结:文件的操作方式有三种,r(read)只读模式,w(write)只写模式,a(append)追加模式
    搭配的文件读写单位有两种模式:t(text)文本模式,b(bytes)二进制模式
    3*2=6,一共有六种搭配组合

    循环读取文件内容
    with open ('access.log',mode='rt',encoding='utf-8') as f :
    # date=f.read()
    # print(date)
    for line in f :
    print(line)


    修改文件内容:也有两种方式;

    """
  • 相关阅读:
    容器网络(一)docker容器网络驱动
    双指针遍历/滑动窗口 —— 209_长度最小的子数组
    双指针遍历/滑动窗口 —— 121_买卖股票的最佳时机
    双指针遍历/滑动窗口 —— 42_接雨水
    双指针遍历/滑动窗口 —— 26_删除排序数组中的重复项
    双指针遍历/滑动窗口 —— 16_最接近的三数之和
    双指针遍历/滑动窗口 —— 15_三数之和
    双指针遍历/滑动窗口 —— 11_盛最多水的容器
    双指针遍历/滑动窗口 —— 3_无重复字符的最长子串
    链表操作 —— 206_反转链表
  • 原文地址:https://www.cnblogs.com/1832921tongjieducn/p/10484259.html
Copyright © 2020-2023  润新知