文件的指针位置

f = open('指针测试.txt','a+',encoding='utf-8')  # 这里会直接创建文件,可查看a,w,r,以及分别加加号‘+’和加b的区别
# tell() 显示文件指针
print(f.tell())

# 更改文件指针的位置  seek(偏移量,whence)
# 偏移量是数字,距离whence字符数
# whence:0:文件开头 1:当前位置 2:文件结尾  seek(10,0)  # 可能只有rb或者rb+的时候偏移量才能是负数,也就是倒着数,这里笔者没有具体测试
# f.seek(4,0)
# print(f.read())
# f.seek(0,0)
# f.write('aaaaa\nbbbbb\nccccc\nddddd\n')
# f.seek(4,0)
f.seek(0, 0)
print(f.read())
print('='*10)
# aaaaa\r\nbbbbb,这串数字从第五,第六个位置打印后两位是一样的
f.seek(6, 0)                               # seek 移动鼠标位置(位数)包含\r\n,读取时(位数)不包含\r
print(f.read(2))      # 本来是光标移动到开始0,打印光标后七个的最后一个,和光标移动到第六个,打印后一个是一样的
print('-'*10)         # 第六个位置是\r,第七个位置是\n,所以读七个不包括\r,会打出来b,移动六个,打印后一个则不是b
f.seek(5, 0)          # 可是光标的移动是包括\r\n的,多一位,所以结果会不同
print(f.read(2))

f.close()

# 补充以下系统换行时所占字节位数
# windows  \r\n  \r表示回行首 \n换行
# unix/linux  \n
# mac  \r
# 这里的‘指针测试.txt’文件里的内容如下:
# aaaaa
# bbbbb
# ccccc
# ddddd

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Vamei实验室

快速学习Bash

作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载。

8920
来自专栏Golang语言社区

Golang语言延迟函数defer用法分析

本文实例讲述了GO语言延迟函数defer用法。分享给大家供大家参考。具体分析如下: defer 在声明时不会立即执行,而是在函数 return 后,再按照 FI...

381150
来自专栏程序员的知识天地

Python新手快速入门教程-基础语法

交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编写代码。

9510
来自专栏java架构师

C# 多线程

 Thread类的使用: 初始化: Thread th1 = new Thread(function1); Thread th2 = new Thread(ne...

33460
来自专栏刺客博客

使用sed命令在两行匹配之间插入一行新内容

在这两个之间插入一行liming。 解决办法: 查了一下sed的用法貌似可以试一下,看到命令n可以读入下一行到pattern space,就可一匹配完前一行...

12220
来自专栏SpringBoot

第二节,Springboot自定义配置文件

配置文件的作用:修改SpringBoot自动配置的默认值;SpringBoot在底层都给我们自动配置好;

25030
来自专栏达摩兵的技术空间

数组双向绑定的简单分享

本文主要是摘录《vuejs权威指南》部分的相关解读,我们都知道vue对数据支持双向绑定,对数组也是支持的,但是其在官网有明确说明,对于数组通过 对象.语法来修改...

14520
来自专栏Modeng的专栏

Vue中如何使用方法、计算属性或观察者

熟悉 Vue 的都知道 方法methods、计算属性computed、观察者watcher 在 Vue 中有着非常重要的作用,有些时候我们实现一个功能的时候可以...

14420
来自专栏Theo Tsao

Vim的基本使用(一)

本文包含Vim的基本使用有: 移动光标、屏幕滚动、模式查找、位置标记、删除文本、撤销与重做、插入文本、复制与移动、修改文本、写入与退出。

10730
来自专栏编程微刊

promis:异步编程

15510

扫码关注云+社区

领取腾讯云代金券