Python基础知识4:文件操作
时间:2022-04-28
本文章向大家介绍Python基础知识4:文件操作,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
文件的知识:打开文件、操作文件、关闭文件
1、关于打开文件:
f.open('text','r')#r代表只读
f.open('text','w')#w代表只写,先清空源文件的内容
f.open('text','x')#文件存在即报错,文件不存在则创建文件,并可写入内容(即同w)
f.open('text','a')#a代表在源文件末尾追加内容
案例1:读文件内容的程序
f=open('db','r')
data=f.read()
print(data)
f.close()
案例2:encoding限制文件内容形式
#读文件内容出来,如果打开文件时出现乱码,需要看下encoding对应的类型是否真错
#比如text文件中有汉字,则必须写上encoding='utf-8'
f=open('text','r',encoding='utf-8')
data=f.read()
print(data)
f.close()
案例3:加b后,直接以字节方式读取文件,不加b则以字符串形式读取
f=open('db','rb')#当r为rb时,会以字节方式读取文件
data=f.read()
print(data,type(data))
f.close()
案例4:当传递内容为字符时,需要通过bytes转化
f=open('db','ab')#会以字节方式追加
f.write(bytes("hello",encoding='utf-8'))#当传递内容为字符时,需要用bytes转化
f.close()
案例5:r+即可读又可写,同时不会覆盖文件,会在末尾追加内容
f=open('db','r+',encoding='utf-8')#即可读又可写
data=f.read()
print(data)
f.write("hello")#在末尾覆盖
f.close()
执行结果:
另外还有a+(实现读和写,但写的时候会永远在最后追加),w+(实现写和读,但会清空源文件内容后在写),因此用的最多的是r+
2、关于文件的操作
seek()#将按字节形式读取指针位置,中文代表3个字节
tell()#获取当前指针的位置,按字节形式
案例6:调整指针位置
f=open('db','r+',encoding='utf-8')#即可读又可写
data=f.read(1)#如果打开模型无b,则read按字符读取,如果有b,则按字节方式,比如中文会占3个字节
print(f.tell())#tell()当前指针所在的位置,无论是否有b,均按字节形式
f.seek(f.tell())#可调整当前指针的位置
f.write("888")
f.close()
案例7:flush#强刷,当没有结束程序时,需要把写的内容强制刷进内存
f=open('db','a')
f.write("123")
f.flush()#强制把123内容写入硬盘中
input("hhh")
案例8:truncate,用来截断数据
f=open('db','r+',encoding='utf-8')#即可读又可写
f.seek(3)#调整到3字节
f.truncate()#3字节后的所有内容全部清空
f.close()
其他:readline,仅读取一行
3、关闭文件
可以用f.close(),还可以用with执行完自动关闭
withopen('db')asf:
input("hhh")
案例9:读取第一个文件的前世行,并写入到第二个文件
withopen('db','r')asf1,open('db2','w')asf2:
times=
forlineinf1:#一行一行的读取
times+=1
iftimes
f2.write(line)
else:
break
案例10:修改一个文件,替换部分内容
withopen('db','r')asf1,open('db2','w')asf2:
forlineinf1:
new_str=line.replace("aaa","cc")
f2.write(new_str)
- Java & PhantomJs 实现html输出图片
- 干货 | React Native实践之携程Moles框架
- Java并发学习之ThreadLocal使用及原理介绍
- ibeacon蓝牙技术简介
- Java并发学习之定时任务的几种玩法
- [视频直播]本周日先行者视频“React多级菜单
- Java并发学习之线程状态及Thread常用方法详解
- Java并发学习之四种线程创建方式的实现与对比
- Google protocol buffer简介
- Java反射的使用姿势一览
- [一对一讲什么] 之 测完了接口、搞好了目录,然后做啥?
- Java容器篇小结之List自问自答
- android断点下载
- [一对一讲什么] 之 什么叫切图?
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 实现Android 滑动退出Activity的功能
- Android开发中播放声音的两种方法分析
- Android UI设计与开发之实现应用程序只启动一次引导界面
- Android编程实现两点触控功能示例
- Android RecycleView添加head配置封装的实例
- Android编程实现捕获程序异常退出时的错误log信息功能详解
- Android开发之Socket通信传输简单示例
- Android自定义对话框Dialog的简单实现
- Android编程实现Toast只显示最后一条的方法
- Android 照相机的实例应用
- Android 逐帧动画创建实例详解
- 腾讯云 Severless 项目开发和灰度发布实践之路
- C/C++ Search Extension —— 一款可以快速在地址栏搜索 C/C++ 文档的浏览器插件
- 一些小众却有用的 Node.js 包
- 用Single-spa 创建基于 React 和 Vue 的微型前端