每个打开的文件都有一个隐式指针,该指针指示将在何处读取和写入数据。通常,它默认为文件的开头,但是如果您使用a(追加)模式,则默认为文件的结尾。还值得注意的是,w即使您添加+到该模式,该模式也会截断您的文件(即删除所有内容)。

每当您读取或写入N个字符时,读/写指针都会在文件中向前移动该数量。我发现,如果您记得那些,可以将其像旧的盒式磁带一样思考。因此,如果执行以下代码:

fd = open("testfile.txt", "w+")

fd.write("This is a test file.\n")

fd.close()

fd = open("testfile.txt", "r+")

print fd.read(4)

fd.write(" IS")

fd.close()

...它应该最终打印This,然后将文件内容保留为This IS a test file.。这是因为首字母read(4)返回文件的前4个字符,因为指针位于文件的开头。它将指针留在紧随其后的空格字符处This,因此以下代码write(" IS")用空格(与已有的空格相同)覆盖接下来的三个字符,然后IS替换现有的is。

您可以使用seek()文件的方法跳到特定点。在上面的示例之后,如果执行以下操作:

fd = open("testfile.txt", "r+")

fd.seek(10)

fd.write("TEST")

fd.close()

...然后您会发现该文件现在包含This IS a TEST file.。

所有这一切都适用于Unix系统,并且可以测试这些例子,以确保。但是,我有混合的问题read(),并write()在Windows系统上。例如,当我在Windows机器上执行该第一个示例时,它可以正确打印This,但是之后再检查该文件时,该文件将write()被完全忽略。但是,第二个示例(使用seek())在Windows上似乎可以正常工作。

总而言之,如果您想在Windows中从文件的中间进行读取/写入,建议您始终使用显式seek()而不是依赖于读取/写入指针的位置。如果您只做读或写操作,那就很安全了。

最后一点-如果您将Windows上的路径指定为文字字符串,请记住转义反斜杠:

fd = open("C:\\Users\\johndoe\\Desktop\\testfile.txt", "r+")

或者,您可以通过r在开始处使用来使用原始字符串:

fd = open(r"C:\Users\johndoe\Desktop\testfile.txt", "r+")

或最可移植的选择是使用os.path.join():

fd = open(os.path.join("C:\\", "Users", "johndoe", "Desktop", "testfile.txt"), "r+")

您可以在官方Python文档中找到有关文件IO的更多信息。

python入门文件读取与写入_初学者Python:读取和写入同一文件相关推荐

  1. python入门需要什么基础知识_小学生Python入门基础知识有哪些

    ​画正方形-小学生 Python 入门课 还没开始学就要画正方形啊!会不会太难啊? 今天主要是教大家简化版的程序设计流程,其实和大家在日常生活中做的事情是一样的. 第一步:准备画画的工具包(纸和铅笔) ...

  2. python入门必备10个坑_适合 Python 初学者的一些技巧和坑

    前言 前几天董大 @董伟明 的爱派森上线了,还发了一套 PPT 和视频,PPT 共有75页干货,讲了很多进阶的用法,也包括很多坑,非常适合刚入门的同学,免得再踩到. 这里我提取部分非常规的,也就是大部 ...

  3. Python入门教程:很多人推荐学 Python 入 IT ,如果学完 Python 找不到工作怎么办...

    Python入门教程:很多人推荐学 Python 入 IT ,但是如果学完 Python 找不到工作怎么办,这也是很多人担心的问题. 很多人推荐通过学习 Python 入行 IT 一是因为 Pytho ...

  4. python入门文件读取与写入_使用Python对Dicom文件进行读取与写入的实现

    Pydicom 单张影像的读取 使用 pydicom.dcmread() 函数进行单张影像的读取,返回一个pydicom.dataset.FileDataset对象. import os import ...

  5. python读取hdf-eos5数据_《Python和HDF 5大数据应用》——2.4 你的第一个HDF5文件-阿里云开发者社区...

    本节书摘来自异步社区<Python和HDF 5大数据应用>一书中的第2章,第2.4节,作者[美]Andrew Collette(科莱特),胡世杰 译,更多章节内容可以访问云栖社区" ...

  6. python怎么读取sav格式_利用Python读取外部数据文件

    利用Python读取外部数据文件 [color=rgb(0, 0, 0) !important]刘顺祥 [color=rgb(0, 0, 0) !important]摘要: 不论是数据分析,数据可视化 ...

  7. python读取sas数据集_利用Python获取SAS和R自带数据集

    图:北京-奥森公园-2018年4月 无论是SAS.R还是Python,本身都自带一些数据集,对于初学者来说,可以通过这些自带的小数据集进行编程练习,无疑是非常方便的.SAS.R作为统计分析软件,本身自 ...

  8. python发行版是什么意思_致 Python 初学者

    当下是一个喧嚣.浮躁的时代.我们总是被生活中大量涌现的热点所吸引,几乎没有深度阅读和思考的时间和机会.我始终认为,学习是需要沉下心来慢慢钻研的,是长期的:同时,学习不应该被赋予太多的功利色彩.一个Py ...

  9. python入门指南推文_GitHub - Hiufan/codeparkshare: Python初学者(零基础学习Python、Python入门)书籍、视频、资料、社区推荐...

    PythonShare Python初学者(零基础学习Python.Python入门)书籍.视频.资料.社区推荐 本文 主要 针对 零基础 想学习Python者.本文本文由@史江歌(shijiangg ...

最新文章

  1. Python基本语法_集合set/frozenset_内建方法详解
  2. 芯片焊接和PCB设计引脚的长度及位置对于焊接质量的教训
  3. 引用“.NET研究”类型赋值为null与加速垃圾回收
  4. linux获取ad用户列表,Powershell小技巧之查询AD用户
  5. CAS服务下单点登录(服务端与客户端)
  6. 在Selenium中按TagName定位元素
  7. dubbo调用超时回滚_如何处理Dubbo调用超时?
  8. FPN相关问题学习记录
  9. 硬盘分区变为RAW文件系统后的解决办法
  10. Atitit smp prj 项目简化方法总结 目录 第一章 俩大原则准则 1 第一节 极简主义原则 + 自由主义原则 1 第二章 简单化架构 1 第一节 简单语言php vs java 1 第二
  11. Android 安卓益智休闲源码
  12. C语言种根号怎么表示 比如(1-x)的二分之一次方
  13. 单位负反馈图_负反馈的魔力
  14. TensorFlow的Dataset的padded_batch使用
  15. [暑假]简单认识一下常用的字体 <<微软雅黑 黑体 和 宋体>>
  16. VR这张旧船票,能否登上元宇宙这艘宇宙飞船?
  17. 什么是系统集成(SI)?
  18. ftp 工具 绿色,这6款ftp 工具 绿色是站长们不可或缺的必备工具
  19. 我们为什么需要仿真服务机器人?
  20. AssertionError 的来源

热门文章

  1. JS和安卓 IOS的交互 例子式记录
  2. 第5章 IDA Pro
  3. 期货黄金与现货黄金比较
  4. DataTable是否存在某个列的判断
  5. C语言宏定义##连接符和#符的使用及其它宏定义注意事项
  6. ajax和Java session监听
  7. BookSmart Self Publishing
  8. 2.7万字还原行业面貌,《2019 AI金融风控行业研究报告》正式上线!...
  9. 亚信安全协助绿谷制药确保“秘方”安全
  10. Android源码编译全过程记录(基于最新安卓5.1.0)【转】