7.8 文件内光标的移动

当文件内容中间需要增加内容时,单纯的使用w和a模式已无法实现,所以我们需要对文件内的光标进行移动

>>>硬盘上从来没有修改一说,硬盘上只有覆盖,即新内容覆盖新内容。<<<

光标移动常用方法

seek(offset,whence)

  • offset 代表文件指针的偏移量,单位是字节,
  • whence 代表光标的位置,

      0:参照文件的开头 t和b都可以使用
      1:参照光标所在的当前位置 只能在b模式下用
      2:参照文件的末尾 只能在b模式下使用

# test02.txt
# >>>>>>
#tian是天上的云
#tian是天上的云
#tian是天上的云
# >>>>>>
with open(r‘test02.txt‘,‘r‘,encoding=‘utf-8‘) as f:
    print(f.read(5))

#tian是 # 在rt模式下 read内的数字 表示的是字符的个数# 除此之外,数字表示的都是字节
只有在r模式下才可以进行游标操作(游标操作的是字节)

with open(‘a.txt‘,‘rb‘) as rb:

  date = rb.read(10)

  f.seek(2,0)   #seek(offset,whence)    offset   前面的是游标移动的字节数,正数表示向后移动,负号表示向前移动。  

        逗号后面的数字在b模式下可以为0、1、2

        whence    0:游标置到开头  1:游标置到当前位指  2:游标置到末尾

# 你是日本人
with open(‘target.txt‘, ‘rb‘) as f:
# 先读6个字节
data = f.read(6)
print(data.decode(‘utf-8‘)) # 你是
# 将游标从头开始往后偏移3个字节
f.seek(3, 0)
data = f.read(6)
print(data.decode(‘utf-8‘)) # 是日
# 从当前游标位置往前偏移3个字节
f.seek(-3, 1)
data = f.read(3)
print(data.decode(‘utf-8‘)) # 日

f.seek(-3, 2)
data = f.read(3)
print(data.decode(‘utf-8‘)) # 人

原文地址:https://www.cnblogs.com/PowerTips/p/11154522.html

时间: 2024-10-26 05:10:52

7.8 文件内光标的移动的相关文章

文件内光标的移动 函数基础 定义函数的三种形式

# with open(r'a.txt', 'r', encoding='utf-8')as f:# data1=f.read()# print('>1>:',data1)# print(f.tell()) # 44 只有一种情况下,光标的意思是字符# data2=f.read()# print('>2>:',data2) # 第一次有结果,第二次没有,第一次读取数据后光标已经移到了文件尾 # 只有一种情况下,光标以字符为单位:文件以rt方式打开,read()# with open

利用EJS查找可用的Google搜索服务器IP,并缓存入系统Hosts文件内

此博客为9925.org的镜像,登录9925.org可以查看到最新博文. 原文出处:http://ily.so/qi2ENn 搜索可用的Google搜索服务器IP,并将搜索结果缓存入系统Hosts文件内. 提示:此脚本在R5以上版本的EJS脚本IDE工具内可成功解释运行. clear(); console.info("/**************************版权声明**************************/"); console.info("/*  

嵌入资源第三讲:多格式文件内嵌入WPF资源文件

作为一个扩展,你需要了解DotNetZip用法,请参见:C# .NET 使用第三方类库DotNetZip解压/压缩Zip文件 你也需要了解单文件内嵌入资源文件基本方法,参见:WPF调用嵌入的非.net的EXE资源文件 作者:一剑 如果你有一大堆文件或者想通过打包的方式嵌入任意格式的文件到资源文件中,那么你可以打包成一个ZIP文件,再嵌入到资源文件中是一个不错的选择: using System.Reflection;//++ using System.IO; using Ionic.Zip; na

dos移动一个文件内的所有内容到另一个文件

1)移动一个文件内的所有内容到另一个文件(不包含该目录) 比如:把文件夹1 里面的所有文件(包含子目录)全部移动到与1同级目录的文件夹2中: cd 1 for /f "tokens=* delims= " %a in ('dir /a /b') do (move %a ..\2)

文件内查找插件FindinFiles

FindInFiles for Windows 今天分享一个不错的插件工具:FindInFiles.如其名,其功能和Visual Studio的Ctrl+H快捷键类似,方便Windows使用者在资源管理器中进行文件内查找操作.可通过官网下载安装,安装后右键文件夹,会在右键菜单中显示"FIndinfiles..."菜单,点击打开查找对话框进行文件内查找. 主要特性: - 根据文件上下文内容进行全搜索. - 自动检测文件类型(UTF8, UNICODE, EUC-KR, EUC-JP, I

const对象仅在文件内有效-谈extern/作用域

<C++ Primer>中指出,const对象仅在文件内有效(2.4章 page54). WHAT? const对象 :分两步 - 1,找到对象 2,加const (注意陷阱) 文件内 :指的是在一个项目中,相互独立的文件.即没有#include! 1 const int i = 10; // ok 2 const char* s1 = "Do not use include"; // error! is not const-object 3 char* const s2

vbs读取文件内的信息将非有效数据移动到指定路径

vbs读取文件内的信息将非有效数据移动到指定路径 之前我们介绍了,通过读取文件内的信息将相同的数据拷贝到指定目录,执行后我们可以利用有效的信息,但是时间长的话服务器上的可用空间也会越来越多,所以再次就想通过vbs脚本来判断数据是否有用,来提高服务器的可用空间. 思路是这样的,通过从domino目录下导出有效的数据,然后通过本地的数据盘进行比对,将无效的数据库移动到其他盘操作,如果在不影响数据完整性的情况下在做删除,那如何操作呢,首先是定义一个xlsx文件(1.xlss),文件可以任意命名,但是需

Java关于条件判断练习--统计一个src文件下的所有.java文件内的代码行数(注释行、空白行不统计在内)

要求:统计一个src文件下的所有.java文件内的代码行数(注释行.空白行不统计在内) 分析:先封装一个静态方法用于统计确定的.java文件的有效代码行数.使用字符缓冲流读取文件,首先判断是否是块注释开头,接着判断是否是块注释结尾,再判断是否是单行注释或者空白行,若都不是则是有效代码,统计行数+1. 对于文件夹路径,采用递归的方法判断子条目是文件还是文件夹,是文件就调用静态统计方法.源代码: public class CalculateRow { public static void main(

演示:多格式文件内嵌入WPF资源文件

作为一个扩展,你需要了解DotNetZip用法,请参见: C# .NET 使用第三方类库DotNetZip解压/压缩Zip文件 你也需要了解单文件内嵌入资源文件基本方法,参见: WPF调用嵌入的非.net的EXE资源文件 如果你有一大堆文件或者想通过打包的方式嵌入任意格式的文件到资源文件中,那么你可以打包成一个ZIP文件,再嵌入到资源文件中是一个不错的选择: using System.Reflection;//++using System.IO;using Ionic.Zip;namespace