首页 > 编程语言 > 详细

python开发学习历程

时间:2020-06-12 21:56:44      阅读:38      评论:0      收藏:0      [点我收藏+]

2020-06-12                                             

目录:

一、控制文件指针移动

1.1  文件指针移动的单位

1.2  主动/单纯控制指针的移动

二、文本的修改

一、控制文件指针移动

1.1  文件指针移动的单位

只有在t模式下的read(n)中,n指的是字符个数
其余所有的主动/被动的文件指针移动都是以bytes为单位
如:
with open(ra.txt, mode = rt, encoding = utf-8) as f:
    f.read(2)  # 这里的2指的是2个字符

1.2  主动/单纯控制指针的移动 f.seek(x,y)

f.seek(x,y)中,x指移动字节的个数,y代表模式(有0,1,2三种模式)

  ①  0模式:参照物是文件的开头,可以在t、b模式下使用

with open(d.txt, mode=rt, encoding=utf-8) as f:
    f.seek(3, 0)
    print(f.tell())  # >>>3   f.tell()是计算从文件开头算起,当前指针的位置

  ②  1模式:参照物为当前位置,只能在b模式下使用

with open(d.txt, mode=rb) as f:
    f.read(1)
    print(f.tell()) # 当前位置
    f.seek(2,1)     # 在当前位置往后移动2个字节
    print(f.tell()) 

  ③  2模式:参照物为文件末尾,只能在b模式下使用

with open(d.txt, mode=rb) as f:
     f.seek(-3, 2)  # 指针移动到倒数第三个字符
     print(f.tell())

二、文本的修改

硬盘的数据没有改的概念,所谓的修改都是以新数据覆盖旧的数据来实现改变的
文件可以被修改,但是都是靠内存模拟实现的
具体来讲,有两种方法可以实现文件的修改操作

(1)方式一原理:

①  将硬盘的内容全部读入内存
②  在内存中实现将内容一次性修改完毕
③  将修改完的内容重新覆盖回原文件
优点:不费硬盘,硬盘数据只有一份
缺点:费内存,当文件过大时内存占用过大

(2)方式二原理:

①  将文件中的数据一行一行读进内存进行修改
②  将修改完成的数据一次一次地写进另一个新文件内
③ 将原文件“删除”,再将新文件重命名为原文件 优点:不费内存,同一时刻在内存中只有一行内容 缺点:费硬盘,在修改过程中硬盘上会同时存放两份数据

 

python开发学习历程

原文:https://www.cnblogs.com/cui-cheng/p/13110368.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!