学习笔记 文件操作

bytearray 的方法:
   BA代表bytearray
   BA.clear()    清空字节数组
   BA.append(n)  追加一个字节(n为0~255的整数)
   BA.remove(value)  删除第1个出现的字节,如果没有出现,则触发ValueError错误
   BA.reverse()  字节的顺序反转
   BA.decode(encoding='utf-8')  将bytearray转换为字符串
   BA.find(sub[, start[, end]])  查找sub 子节数数组


文件:
  什么是文件
    文件是用于数据存储的单位
    文件通常用来长期存储设置
    文件中的数据是以字节为单位进行顺序存储的

  内存的读写速度快/ 磁盘的读写速度慢


文件的操作步骤:
   打开文件
   读写文件
   关闭文件

文件的打开函数 open
  open(file, mode='rt')  用于打开一个文件,返回此文件流对象,如果打开失败会触发IOError错误

文件的关闭方法
  F.close()  # 关闭文件,释放系统资源

示例见:
    file_open.py

文件操作分为两种类型的操作:
   文本文件操作
   二进制文件操作

文本文件模式:
   mode = 't'
   1. 默认文件中存储的内容为字符数据,以行为单位读取,采用系统默认的换行符进行分隔
   2. 对于文本文件的读写,需要用字符串(str) 进行读取和写入数据

各操作系统默认的换行符:
  Linux 换行符 '\n'
  Windows 换行符 '\r\n'
  旧的Macintosh 的换行符 '\r'
  新的Mac OS 换行符 '\n'

练习:
    将如下数据用文本编辑器sublime 写入到data.txt文件中
    数据如下:
      小张 13888888888
      小李 13999999999
      小赵 13666666666
    写程序读取数据,打印出姓名和电话号码,格式如下:
      姓名: 小张, 电话: 13888888888

练习:
  1. 写一个程序,读入任意行的文字信息,当输入空行时结束输入.
  将读入的字符串存于列表中,然后将列表里的内容写入的文件 input.txt 中

  2. 写一个程序, 从input.txt中读取之前输入的数据,存入列表中.再加上行号进行打印显示
     显示格式如下 :
        第1行: zzzzzzz
        第2行: xxxxxxx

  答案见:
    write_data.py
    read_data.py



二进制文件操作
  打开模式 : 'b'
  默认文件中存储的都是以字节为单位的二进制数据,通常有人为规定的格式,需要以字节为单位进行读写
  对二进制文件的读写,需要用字节串(bytes)进行操作

F.read(n) 方法
F.readline()
F.readlines()
对于二进制文件,F.read()/F.readline返回字节串
  F.readlines() 返回字节串列表
  F.read(n)  n代表最大字节数

F.write(x)方法
  对于二进制文件,x必须为字节串


F.seek(offset, whence=0) 函数
  offset 偏移量:
      大于0的数代表向文件末尾方向移动
      小于0的数代表向文件头方向移动
  whence 相对位置
      0  代表从文件头开始偏移
      1  代表从当前位置开始偏移
      2  代表从文件尾开始偏移

示例见:
   seek.py

汉字编码:
  国标系列:
    GB18030 (2字节或4字节编码,共27533个)
        GBK (2字节编码,共21003个)
            GB2312 (2字节编码,共6763个汉字)
    (常用于Windows)
  国际标准:
      UNICODE16/UNICODE32  <<<--->>> UTF-8
      (常用于Linux / Mac OS X / IOS / Android)

      UTF-8(8-bit Unicode Transformation Format)

编码字符串:
  'gb2312'
  'gbk'
  'gb18030'
  'utf-8'
  'ascii'
  用于 encode和  decode方法中

编码注释:
  在源文件的第一行或第二行写入如下格式的内容
  # -*- coding:gbk -*-
  或
  # -*- coding:utf-8 -*-
  是告诉python3解释执行器当前文件的编码是什么




练习:
1. 修改原来的学生管理系统的代码,将其为分模块
     建议:
       1. 把显示菜单放在一个模块内
       2. 把对学生的操作放在一个模块内
       3. 把主事件循环while True 选择输入放在一个模块内

  2. 在菜单上添加两个功能:
     | 9) 保存学生信息到文件(si.txt)  |
     | 10) 从文件中读取数据(si.txt)   |
     建议用逗号","分隔数据:
       # file: si.txt
       xiaozhang,21,98
       xiaoli,22,100
       ...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值