当我们需要对现有文件进行读取数据并修改文件中的数据时,就需要用到对已有文件进行既读又写的操作。有多种可读且可写的文件打开方式:r+,w+,a+,rb+,wb+,ab+,具体含义见下表。

打开

方式

读写

特性

文件数据

特性

对文件存在性的处理方式

备注

文件已存在

文件不存在

r

只读

文本文件

必须已存在

打开失败

w

只写

文本文件

覆盖原文件

创建新文件

a

只写

文本文件

不覆盖原文件

创建新文件

在文件末尾追加写数据。

rb

只读

二进制文件

必须已存在

打开失败

wb

只写

二进制文件

覆盖原文件

创建新文件

ab

只写

二进制文件

不覆盖原文件

创建新文件

在文件末尾追加写数据。

r+

读写

文本文件

必须已存在

打开失败

w+

读写

文本文件

覆盖原文件

创建新文件

a+

读写

文本文件

不覆盖原文件

创建新文件

在文件末尾追加写数据。

rb+

读写

二进制文件

必须已存在

打开失败

wb+

读写

二进制文件

覆盖原文件

创建新文件

ab+

读写

二进制文件

不覆盖原文件

创建新文件

在文件末尾追加写数据。

(上表中的读写方式助记:r--read,读,  w--write,写,  a--append或attach,追加,  b--binary,二进制)

在此强调的是在对打开的同一个文件进行即读又写操作时,关于文件读写位置需要注意的事项。

下面以用r+方式打开的读写已经存在的文本文件为例。需要注意一点的是,读操作和写操作是共用一个文件位置指示的。也就是说文件操作没有分别指示读位置和写位置指示的,只有一个文件位置指示。因此,如果读操作和写操作交替进行,那么,上次的读操作结束时所在的读写位置,默认就是下次写操作时的文件读写位置的开始,相应地,上次的写操作结束的位置,默认就是下次读操作开始的位置。如果这种默认文件读写位置不能满足你的实际需要的话,必须用所操作文件对象的see(offset,whence)方法,将文件读写位置按自己的需要进行定位,此函数参数offset为偏移量,可正负,参数whence表示offset相对的基准位置,取值0,1,-1,分别表示文件开头,当前位置和文件末尾。

实例,将数独游戏数据文件中一行的81个数字,修改成9行,每行9个数字。

程序如下:

fObj = open(fileName, 'r+')

lines = fObj.readlines()

fObj.seek(0,0)

for aLine in lines:

fObj.write(aLine)

fObj.write('\n')

fObj.close()

对已有文件进行既读又写的操作时关于文件位置注意事项(适用于Python和C/C++)相关推荐

  1. Python open()函数文件打开、读、写操作详解

    python的文件读写和打开操作都有自己特定的函数和方法,操作起来很简单.下面就来简单的了解下python文件的基本操作方法有哪些. 一.Python open()函数文件打开操作 打开文件会用到op ...

  2. c语言中读和写的作用,c语言文件读写

    c语言文件读写 从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种. ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码.ASCII码 ...

  3. 【对讲机的那点事】带你玩转凯益星CG53数字对讲机的读、写频操作

    数字对讲机已经深入到我们的生活当中了,数字对讲机可以提供更好的数据处理及界面功能,从而使更多的数据应用可以被集成方便到同一个双向无线通讯基站结构中对语音和数据服务集成更完善.更加方便.给我们在日常的管 ...

  4. [Android L]SEAndroid开放设备文件结点权限(读或写)方法(涵盖常用操作:sys/xxx、proc/xxx、SystemProperties)热门干货

    点击打开链接 温馨提示      建议你先了解一下上一篇博文([Android L]SEAndroid增强Androd安全性背景概要及带来的影响)所讲的内容,先对SEAndroid窥个全貌,然后再继续 ...

  5. Linux 文件权限 -rwxr-xr-- 可读 可写 可执行 什么意思 ?

    2.1.文件信息含义解释 文件信息:drwxr-xr-x. 2 root root 4096 Oct 29 16:43 Desktop drwxr-xr-x:文件类型和权限.第1位:文件类型,剩余9位 ...

  6. linux c url下载文件,OpenCV教程之使用cmake生成MakeFile时下载文件

    在编译OpenCV以及其附加模块时,有时会需要一些第三方的库,如果本地没有,会自动下载,下载地址一般为GitHub,结果当然就是卡死在那里,根本无法下载,下面教大家如何解决这种问题. 问题重现 比如我 ...

  7. java修改原有txt文件_(转)Java创建txt文件并进行读、写、修改操作

    Creation date: 2007-12-18 - 下午06:48:45 */ public class ReadWriteFile { public static BufferedReader ...

  8. java文件的读和写还有使用_java中文件读和写的操作

    import java.io.*; //文件读 class FileReadTest { public static void main (String[] args) { FileReadTest ...

  9. 在unity 中,使用http请求,下载文件到可读可写路径

    在这里我用了一个线程池,线程池参数接收一个带有object参数的,无返回值的委托 ,下载用到的核心代码,网上拷贝的,他的核心就是发起一个web请求,然后得到请求的响应,读取响应的流 剩下的都是常见的I ...

最新文章

  1. oracle存储过程、声明变量、for循环(转)
  2. 微信XML,Object,MAP相互转换
  3. 游戏行业案例 | 99.7% 的充值玩家比例提升,从何而来?
  4. jquery笔记(常用技术)
  5. 海量数据处理:如何从10亿个数中,找出最大的10000个数?(top K问题)
  6. 防抖和节流(白话版)
  7. 条件查询_SQL简单查询(条件查询 模糊查询)
  8. Java String:重要到别人只能当老二的字符串类
  9. 阿姆斯特丹大学博士招生,月薪2.3K-3K 欧,QUVA Lab 计算机视觉与机器学习方向...
  10. T440安装Win7系统
  11. CH14 Android中的多媒体
  12. iOS 之 OBJECTC 调用C、OBJECTC调用C++
  13. NeoKylin7用户和组管理
  14. BurpSuite使用详解(三)Spider功能
  15. 使用机器学习和Python揭开DNA测序神秘面纱
  16. 将centos7打造成桌面系统centos
  17. ibm笔记本修复计算机开机按,联想thinkpad重装系统按什么键_联想thinkpad电脑重装系统按哪个键-win7之家...
  18. MogaFX—日元兑美元30多年来首次突破150日元
  19. 学计算机音视频教程,抖音短视频VIP教程全套合集
  20. TI OMAP4XXX 协议处理器(4460应用于三星、华为等手机)

热门文章

  1. shell常用命令总结总结
  2. Java-reflect(反射)初步理解_1
  3. 最具戏剧性的分析诊断案例——十分钟锁定数据库性能“元凶”
  4. 图解MapReduceMapReduce整体流程图
  5. java中判断字段真实长度(中文2个字符,英文1个字符)的方法
  6. android 之数据存储(IO)
  7. Android应用程序绑定服务(bindService)的过程源代码分析
  8. springboot工程打包时将application.properties放在jar包外
  9. JavaScript --- 跨浏览器的事件对象
  10. VS2008中开发智能设备程序的一些总结