基础 day16

文件 file

  文件是用于数据存储的单位

  文件通常用来长期存储数据

  文件中的数据是以字节为单位进行顺序存储的

 

文件的操作流程

  1. 打开文件

  2. 读/写文件

  3. 关闭文件

    : 任何的操作系统,同一个应用程序同时打开文件的数量有最大数限制,所以在用完文件后需要关闭

 

文件的打开函数open

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

 

文件的关闭方法:

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

 

 

文本文件操作模式

   模式字符:

     't'  (默认)

   1. 默认文件中存储的数据为字符数据,以行为单位分隔,在 python 内部统一用'\n'作为换行符进行分隔

   2. 对文本文件的读写需要用字符串(str)进行读取和写入数据

 

各操作系统的换行符:

  Linux换行符:         '\n'

  Windows换行符:       '\r\n'

  旧的Macintosh换行符 : '\r'

  新的Mac OS换行符:     '\n'

说明:

  在文件文件模式下,各操作系统的换行符在读入python内部时转换为字符'\n'

 

 

练习:

  自己写一个文件 info.txt ,内部存储一些文字信息如下:

    小张 20 100

    小李 18 98

    小王 19 95

  写程序将这些数据读取出来,打印在屏幕终端上

 

文件的迭代读取:

   open返回的文件流对象是可迭代对象

 

   示例:

    f = open('myfile.txt')

    for line in f:

        print(line)

 

文本文件的写操作:

  写文件模式有:

     'w'

     'x'

     'a'

 

练习:

  1. 写一个程序,输入很多人的姓名,年龄,家庭住址信息,存入文件

    'infos.txt' 中

    文件格式自己定义

    完成输入后查看文件格式是否是你想要的格式(文本文件操作)

  

  2. 写一个程序读入infos.txt中的内容,以如下格式打印 infos.txt中的内容

     姓名: xxx, 年龄 20, 住址: XXXX

     姓名: yyy, 年龄 18, 住址: YYYYYY

 

 

 

 

二进制文件操作

  默认的文件中存储的都是以字节为单位的数据,通常有人为规则的格式,需要以字节为单位进行读写

 

F.read() 的返回类型:

   1. 对于文本模式('t')打开的文件,返回字符串(str)

   2. 对于二进制模式('b')打开的文件,返回字节串(bytes)

  

F.write(x)

   1. 对于文本模式,x必须为字符串

   2. 对于二进制模式,x必须为字节串

 

以十六进制方式查看文件内容的命令:

   $ xxd 文件名

 

练习:

  将如下数据用二进制文件操作方式写入到文件data.txt中

  数据如下:

  小李 1388888899

  小王 1366666666

     提示: b = str.encode('utf-8')

   sublime text3 打开,看写入的内容能否被sublime识别并读出

 

 

 

 

F.seek() 方法

  F.seek(偏移量, 相对位置)

    偏移量:

        大于0的数代表向文件尾方向移动

        小于0代表向文件头方向移动

    相对位置:

      0 代表从文件头开始偏移

      1 代表从当前位置开始偏移

      2 代表从文件尾开始偏移

  作用:

    改变当前文件的读写位置

 

F.tell() 方法:

  作用:

    返回当前文件读写位置

 

小结:

文件操作的两种模式:

   'b'  二进制模式

   't'  文本模式

 

文件操作:

   read /readline/readlines

   write /writelines

 

 

汉字编码:

  问题:

    十个汉字占多少个字节

 

只讲两种:

  国标系列:

    GB18030(二字节或四字节编码,共27533个汉字)

      GBK(二字节编码,共21003个汉字)

        GB2312(二字节编码,共个6763汉字)

    (Windows 常用)

  国际标准:

      UNICODE32(UNICODE16)  <---> UTF-8

    (Linux, Mac OS X, IOS, Android等常用)

 

说明:

  python3的字符串内部都是用UNICODE来存储字符的

 

 

python 编码(encode) 字符串:

   'gb2312'

   'gbk'

   'gb18030'

   'utf-8'

   'ascii'

 

 

编码注释:

  python 源文件第一行或第二行写入如下内容是告诉解释执行器此文件的编码类型是什么

  :

    # -*- coding: gbk -*-

    # 设置源文件编码格式为gbk

  

    # -*- coding: utf-8 -*-

    # 设置源文件编码格式为utf-8

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值