当前位置: 首页 > news >正文

简述python文件操作_Python文件操作的几个要点与示例

原标题:Python文件操作的几个要点与示例

一般操作文件时,要么是读取其中的内容,要么是往里面写入新内容,但偶尔也会需要同时进行读写。

Python内置函数在操作文本文件和自定义二进制文件时比较方便,该函数语法为:

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

其中比较常用的参数有:1)file用来指定要操作的文件路径,如果文件不在当前文件夹,建议在写文件路径时使用原始字符串;2)encoding用来指定操作文本文件时使用的编码格式,在Windows平台上默认为cp936;3)mode用来指定打开模式,默认为读取文本文件,可能的取值范围和含义如下:

4c5459542f754d6fbe0dda1c3a1fe01d.jpeg

mode参数的这些取值可以组合使用,例如读取二进制文件时使用rb,写入二进制文件可以使用wb。这里需要注意的几个细节有:1)r、w、x以及这几个模式衍生的模式,打开文件时文件指针位于文件头;而a、ab、a+这样的模式,打开文件时文件指针位于文件尾。2)w和x都是写模式,在目标文件不存在时是一样的,但如果目标文件已存在的话w模式会清空原有内容而x模式会抛出异常。

如果需要同时进行读写,不是使用rw模式,而是使用r+、w+或a+的组合方式(或对应的rb+、wb+、ab+)打开,其中r+要求文件已存在。

打开文件之后,read()、readline()和write()等方法都是从文件指针的当前位置进行读写,并且,文件指针的位置会随着读写而自动变化。例如,以r模式打开文件之后,文件指针在文件头,使用read(5)读取5个字符之后,文件指针自动移动到第6个字符的位置,再使用read()方法读取时是从当前位置(也就是第6个字符的位置)开始读。在需要时可以使用文件对象的seek()方法调整文件指针的位置。

文件对象的seek()方法使用方法如下,其中偏移量的单位为字节,即使是以文本文件的模式打开文件。

03f7086790034828bd4f0308a8f68fb7.jpeg

下面的代码演示了seek()方法的用法,首先创建新文件,然后写入内容,再重新定位文件指针并修改其中的部分内容或者读取其中的内容:

f00f8d3889d7450d8e8e6890707f0cb7.jpeg

8)《Python程序设计实验指导书》清华大学出版社

9)《Python编程基础与案例集锦(中学版)》电子工业出版社返回搜狐,查看更多

责任编辑:

相关文章:

  • 读书小结
  • tomcat线程被打满怎么排查_Tomcat面试题(2020最新版)
  • oc引导开机直接进_超级详细的oc引导制作过程(二)——config.plist的制作,从入门到入土...
  • 2007年你需要知道的五大技术
  • python中reader_关于Python 的这几个技巧,你应该知道
  • SVN时代...
  • sift算法双向匹配剔除不匹配点_【动手学计算机视觉】第七讲:传统目标检测之SIFT特征...
  • SVN应用
  • python怎么训练模型_如何在训练堆叠模型后预测python的数据?
  • 使用者的角度来看SVN
  • python输出文本居中_如何在Tkinter文本小部件中居中文本?
  • SVN pk CVS
  • java api接口怎么写_看看人家那后端API接口写的,那叫一个优雅
  • 彻底解决Symbian全屏显示问题
  • python与java后台_【Web后端工程师-Python/Java是做什么的】知乎2020年Web后端工程师-Python/Java岗位职责-看准网...
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • java2019面试题北京
  • java取消线程实例
  • java小心机(3)| 浅析finalize()
  • JS 面试题总结
  • Js基础——数据类型之Null和Undefined
  • maven工程打包jar以及java jar命令的classpath使用
  • Python socket服务器端、客户端传送信息
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • vue-loader 源码解析系列之 selector
  • Xmanager 远程桌面 CentOS 7
  • 你不可错过的前端面试题(一)
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 实现简单的正则表达式引擎
  • 探索 JS 中的模块化
  • 小程序01:wepy框架整合iview webapp UI
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 国内开源镜像站点
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • #QT(一种朴素的计算器实现方法)
  • (11)MSP430F5529 定时器B
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (TOJ2804)Even? Odd?
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (学习日记)2024.01.09
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .Net CF下精确的计时器
  • .Net Redis的秒杀Dome和异步执行
  • .net对接阿里云CSB服务
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • .Net面试题4
  • .net下的富文本编辑器FCKeditor的配置方法
  • .net中生成excel后调整宽度
  • .NET中统一的存储过程调用方法(收藏)
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • @EnableWebMvc介绍和使用详细demo
  • @media screen 针对不同移动设备