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

python tell函数_十二 —— python的内置函数

f = open(filename, mode)

filename:文件路径

mode:打开文件的模式,默认只读 r。

打开模式分为如下:

a、r —— 只读。默认模式,如果文件不存在就报错,存在就正常读取

b、w ——只写。如果文件不存在,新建文件然后写入;若存在,先清空文件内容,再写入。

c、a ——追加。如果文件不存在,新建文件,然后写入;如果存在,在文件的最后追加写入。

d、x ——新建。如果存在则报错,如果不存在就新建文件,然后写入内容,比w模式更安全。

e、b ——二进制模式。比如rb、wb、ab,以bytes类型操作数据。

f、+ ——读写模式。比如r+、w+、a+

文件读取时,read()、readline()、readlines()的区别:

1、f.read(size)

读取一定大小的数据,size为数据时,用于指定读取量。若无size,则一次性读取所有文件内容。

2、f.readline()

从文件中读取一行内容,这种方法,不可回头,读过的不能再读了。

3、f.readlines()

一次性读取整个文件内容,不同于read()的是,他返回的是list,方便我们遍历哦

注:一般小文件用read(),大文件就用readlines()

4、f.write

将数据写入文件内, 文件进行写入时,若没执行close()方法,则所有的操作都在内容中操作。要立刻把写入操作反应到本地硬盘时,则使用clush(),不过这容易造成数据不一致,慎用!!!

5、f.tell()

返回文件读写指针当前所处的位置,它是从文件开头开始算起的字节数。

6、f.seek()

如果要改变位置指针的位置,可以使用f.seek(offset,from_what)方法。seek()经常和tell()方法配合使用。

offset表示偏移量。from_what的值,如果是0表示从文件开头计算,如果是1表示从文件读写指针的当前位置开始计算,2表示从文件的结尾开始计算,默认为0。

seek(x,0):从起始位置即文件首行首字符开始移动x个字符。

seek(x,1):表示从当前位置往后移动x个字符。

seek(-x,2):表示从文件的结尾往前移动x个字符。

7、f.close()

关闭文件对象。当处理完一个文件后,调用f.close()来关闭文件并释放系统的资源。文件关闭后,如果尝试再次调用该文件对象,则会抛出异常。忘记调用close()的后果是数据可能只写了一部分到磁盘,剩下的丢失了,或者更糟糕的结果。

with关键字用于python的上下文管理器机制

为了防止打开文件,在操作过程中出现异常/错误/忘记执行close()方法,文件非正常关闭等可能导致文件泄露、破坏的问题。python的with关键字可以保证文件被正常关闭。

原文:https://www.cnblogs.com/KeenaCherry/p/12078769.html

相关文章:

  • go java对比_Java微服务 vs Go微服务,究竟谁更强?
  • 万兆单模模块_华为万兆单模模块 OEM光模块 全面兼容OSX010000
  • mysql查询重复记录中最新的一条_MySQL查询重复数据(删除重复数据保留id最小的一条为唯一数据)...
  • yum mysql centos7_Centos7 yum安装 mysql
  • mysql隔离级别命令_MySQl事务隔离级别(命令及简单理解)
  • mysql更改隔离级别_MySQL修改事务隔离级别的暗门
  • mysql alter user语法_MySQL 最基本的语法/语句
  • percona mysql 同步_Percona MySQL5.6 半同步复制
  • mysql-FONT备份数据库_mysql-FONT备份数据库
  • mysql 批量替换表前缀_如何批量修改mysql的表前缀名称
  • mysql datadir 目录权限不够_MySQL数据目录更改及相关问题解决方案
  • windows mysql开启慢查询日志_mysql开启慢查询日志的方法
  • jsp数据添加乱码mysql_JSP插入MySQL数据库中文乱码问题解决
  • python切片赋值_Python中实现:变量和变量赋值的几种形式
  • linux shell mysql 遍历_shell 脚本中获取mysql多个字段的值
  • 08.Android之View事件问题
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • vue自定义指令实现v-tap插件
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 使用putty远程连接linux
  • 使用Swoole加速Laravel(正式环境中)
  • 首页查询功能的一次实现过程
  • 双管齐下,VMware的容器新战略
  • 一个SAP顾问在美国的这些年
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 找一份好的前端工作,起点很重要
  • 智能网联汽车信息安全
  • 《天龙八部3D》Unity技术方案揭秘
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • 从如何停掉 Promise 链说起
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • #if 1...#endif
  • $$$$GB2312-80区位编码表$$$$
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (LeetCode) T14. Longest Common Prefix
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (生成器)yield与(迭代器)generator
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (未解决)macOS matplotlib 中文是方框
  • (原創) 物件導向與老子思想 (OO)
  • ******之网络***——物理***
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET Core 和 .NET Framework 中的 MEF2
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .NET 常见的偏门问题
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • @AutoConfigurationPackage的使用
  • @Resource和@Autowired的区别
  • @transaction 提交事务_【读源码】剖析TCCTransaction事务提交实现细节