Python字符编码与文件操作

字符编码的实际应用

# 1.编码与解码
        编码:
             将人类能够读懂的字符编码成计算机能够直接读懂的字符
        解码:
             将计算机能够直接读懂的字符解码成人类能够读懂的字符
       '''
        字符串前面如果加了字母b 表示该数据类型为 bytes类型 bytes类型可以看成是二进制
        基于网络传输数据 数据都必须是二进制格式 所以肯定涉及到编码与解码
      '''

# 2.如何解决乱码的问题
      数据当初用什么编码的就以什么区解码就可以
      s1 = '好好学习 天天向上'
      print(s1.encode('gbk'))
      s2 = b'\xba\xc3\xba\xc3\xd1\xa7\xcf\xb0 \xcc\xec\xcc\xec\xcf\xf2\xc9\xcf'
      print(s2.decode('gbk'))

  # 3.python解释器层面
      python2解释器默认的编码是ASCII码
        1.文件头:必须写在文件的最上方 告诉解释器使用指定编码
            # coding:utf8
            # -*- coding:utf8 -*-  美化写法
        2.字符前缀:在使用python2解释器的环境下定义字符串习惯在前面加u
            # name = u'你好啊'
       # python3解释器默认的编码是utf8

文件操作简介

# 什么是文件
      操作系统暴露给用户可以直接操作硬盘的快捷方式

  # 代码操作文件的流程
      1.打开文件、创建文件的内容
      2.编辑文件内容
      3.保存文件内容
      4.关闭文件

  # 基本语法结构
      结构1(了解即可):
        f1 = open()
        f1.close()
      结构2(推荐使用):
        with open() as f:
  # 1.使用关键字打开文件
  '''写路径的时候为了防止特殊符号 直接在前面加r'''
  res = open(r'a.txt', 'r', encoding='utf8')  # 相对路径:只有文件在同一个目录下才可以使用相对路径
  open = (r'D:\py\day09\a.txt')  # 绝对路径
  
  '''
    open(文件的路径,文件的操作模式,文件的编码)
      1.文件的路径是必须要写的
      2.文件的操作模式,文件的编码有时候不用写
  '''
  print(res.read())  # 读取文件内容
  res.close()  # 关闭文件
  '''上述的操作open完最后都需要执行close 而close这一行很容易被遗忘'''
  with open(r'a.txt', 'r', encoding='utf8') as f:  # 相当于 f = open()
  data = f.read()
  print(data)

文件的读写模式

r  read    只读模式:只能读不能写
  w  write   只写模式:只能写不能读
  a  append  只追加模式:在文件末尾添加内容

  # r模式
    路径不存在:直接报错
    with open(r'b.txt', 'r', encoding='utf8') as f:
    # pass(推荐) 补全语法结构 本身没有任何功能
    # ...(不推荐)补全语法结构 本身没有任何功能

    with open(r'a.txt', 'r', encoding='utf8') as f1:
    # print(f1.read())  # 一次性读取文件内所有的内容
    f1.write('python是最牛逼的语言!!!')  # 报错

    '''
      able在英语中大部分情况下表示的是  具备...的能力
      readable  具备读的能力
      writable  具备写的能力
    '''

  # w模式
   # 路径不存在:自动创建文件
     with open(r'b.txt', 'w', encoding='utf8') as f1:
    # 路径存在:先清空文件内容 之后再写入数据
    with open(r'a.txt', 'w', encoding='utf8') as f1:
    f1.write('你们是我见过的最优秀一批学生1\n')  # 写入文件内容
    f1.write('你们是我见过的最优秀一批学生2\r')  # 写入文件内容
    f1.write('你们是我见过的最优秀一批学生3\n')  # 写入文件内容
    print(f1.read())
    """
    换行  最早的时候:\r\n
    为了节省空间支持一个字符 根据操作系统的不同可能有所区别
        \n 、 \r
    """
  # a模式
    路径不存在:自动创建文件
    with open(r'a.txt', 'a', encoding='utf8') as f:
      pass
    路径存在:不会清空文件内容 而是在文件末尾等待新内容的添加
    with open(r'a.txt', 'a', encoding='utf8') as f:
      f1.write('你好')
      print(f.read())

文件的操作模式

# t模式
      文本模式 是默认的模式
        r  rt
        w  wt
        a  at
    1.该模式只能操作文本文件
    2.该模式必须要指定encoding参数
    3.该模式读写都是以字符串为最小单位

  # b模式
      二进制模式  可以操作任意类型的文件
        rb  不能省略b
        wb  不能省略b
        ab  不能省略b
    1.该模式可以操作任意类型的文件
    2.该模式不需要指定encoding参数
    3.该模式读写都是以bytes类型为最小单位

文件内置方法

read()  # 一次性读取文件内容
      1.执行完之后光标在文件末尾 继续读取没有内容
      2.当文件内容特别大的时候 容易造成内存溢出(满了)
    readline()  # 一次只读一行内容
    readlines()  # 结果是一个列表 里面的各个元素是文件的一行行内容
    readable()  # 判断当前文件是否可读
    支持for循环  # 一行行读取文件内容(推荐使用)  内存中同一时刻只会有一    行内容
    write()  # 写入文件内容(字符串或者bytes类型)
    writelines()  # 可以将列表中多个元素写入文件
    writable()  # 判断文件是否可写
    flush()  # 相当于主动按了ctrl+s(保存)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lamb!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值