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

python----文件读写

一.文件读写步骤

1.打开文件(只写文件名,默认打开的是当前目录的文件。其他路径写绝对路径)

2.对文件进行读/写操作

3.关闭文件

二.读文件

1.当不添加utf-8时,报编码错误,

在打开文件那加上encoding = 'utf-8' ,就不会报错     即file = open('读写文件',encoding='utf-8')

注意:路径前面加'r',表示不转义,否则在写绝对路径的时候会被转义报错

file = open(r'读写文件',encoding='utf-8')

 

2.文件打开的三种方式   open方法的第二个参数填写,文件打开模式

2.1 只读模式 (r)  ,写文件会报错  第二个参数默认的是只读模式。

写报错截图:

*****三种读取文件的方法 

a. read()方法获取文件中的所有内容

b. readline()获取文件第一行的内容

c. readlines() 获取文件的所有内容,把换行符\n也读取,并放到list中

读模式(r)文件指针:read()和readlines()每读取完文件所有内容,文件指针就移动到末尾 readline()每读取一行,文件指针移动到下一行的前面。

r模式缺点:1.不能写文件  2.文件不存在时,会报错:FileNotFoundError

 

2.2写模式(w)

只能写,不能读,而且写的内容会覆盖原文件内容。慎用,做好备份!!!

写模式读文件,写模式报错截图:

 写模式(w)文件指针:文件指针在文件的开头。所以,写的内容会覆盖原文件内容

w模式缺点:1.不能读文件,2.写入新的文件内容会清空原来文件内容。

 

2.3写读模式(w+)   能写也能读,覆盖原有的东西。能读但是读不到内容。

写读模式(w+)文件指针:写文件时,文件指针在最前面,写完后,文件指针就移动到了末尾。所以读不到内容!

w+模式缺点:写新的内容,会覆盖清空原有文件里的数据

2.4读写模式 ( r+)  能写也能读,文件指针写完后,移到文件的的最前面。

读写模式文件指针:写完文件后,文件指针会移动到最前面。所以能读取到文件内容。

r+缺点:当文件不存在时,报FileNotFoundError错误

2.5追加模式:a  能写文件并从文件末尾追加

a模式文件指针:写完文件,在文件的末尾。

a模式缺点:1.不能读,因为写完文件后,文件指针在末尾,所以读取不到文件内容2.文件不存在会报错

2.6 追加读写模式 a+    能写也能读,但读不到内容。当文件不存在时,自动创建文件。

a+文件指针:因为写完文件内容,文件指针在文件的末尾。所以读取不到内容。

a+缺点:文件指针位置没有在最前面,读取不到文件内容。

2.7 a+模式   与seek()方法一起用。就可以弥补a+读取不到内容的缺点了。

通过seek方法,把文件指针移动到最前面就可以读取到文件的内容

总结:只要和r有关的,只读模式:r和读写模式文件:r+,文件不存在肯定会报错。只要和w有关的,写会清空覆盖原有文件的内容。追加模式记住a+和seek()方法就完美了。即能读又能写文件不存在还自动创建。

3.关闭文件

file.close()

4.其他方法

writelines()方法  传的是list

 

转载于:https://www.cnblogs.com/wyhv5/p/9143117.html

相关文章:

  • Tensorflow 学习笔记(一)TensorFlow入门
  • [Usaco2012 Dec]First! BZOJ3012
  • 前台jsp从session中拿值
  • 代替eval执行字符串表达式
  • 解决Android 7.0 App内切换语言不生效的问题
  • App测试方法总结
  • 一个SAP顾问在美国的这些年
  • Centos 7安装oracle 数据库
  • 关于easyui中datagrid分页问题--摘
  • 数据库学习(MySQL):JDBC的简单增删改查实现
  • MySQL IFNULL()函数的用法
  • 华三云ONEstor存储测试
  • Azure系列2.1.8 —— BlockEntry
  • rust
  • AJAX问题 XMLHttpRequest.status = 0是什么含义
  • 08.Android之View事件问题
  • Angular 4.x 动态创建组件
  • CSS魔法堂:Absolute Positioning就这个样
  • E-HPC支持多队列管理和自动伸缩
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • JavaScript创建对象的四种方式
  • js学习笔记
  • Nacos系列:Nacos的Java SDK使用
  • npx命令介绍
  • SegmentFault 2015 Top Rank
  • vue中实现单选
  • zookeeper系列(七)实战分布式命名服务
  • 对象管理器(defineProperty)学习笔记
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 聊一聊前端的监控
  • 免费小说阅读小程序
  • 深入浅出webpack学习(1)--核心概念
  • 双管齐下,VMware的容器新战略
  • 原生js练习题---第五课
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 阿里云移动端播放器高级功能介绍
  • 湖北分布式智能数据采集方法有哪些?
  • ​​​​​​​​​​​​​​Γ函数
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • (C)一些题4
  • (day 12)JavaScript学习笔记(数组3)
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (windows2012共享文件夹和防火墙设置
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (五)关系数据库标准语言SQL
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)Oracle存储过程编写经验和优化措施
  • (转)人的集合论——移山之道
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .dwp和.webpart的区别
  • .htaccess 强制https 单独排除某个目录
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .net framework profiles /.net framework 配置