文章目录

  • 三、Python文件操作
    • 1.打开`open('文件名','打开模式')`
    • 2.写操作
    • 3.读操作
    • 4.With上下文管理对象
    • 小结
    • 案例
    • 5.文件定位

三、Python文件操作

1.打开open('文件名','打开模式')

fileA = open('./Test.txt','w',encoding='utf-8')
  • 打开模式
打开模式 模式说明
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w 打开一个文件只用于写入。 如果该文件已存在则将其覆盖。如果该文件不存在, 创建新文件。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
rb 以二进制格式打开-一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab 以二进制格式打开-一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
rb+ 以二进制格式打开-一个文件用于读写。文件指针将会放在文件的开头。
wb+ 以二进制格式打开-一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab+ 以二进制格式打开-一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

2.写操作

  • 字符串形式,默认gbk编码
fileA = open('./Test.txt','w',encoding='utf-8')
fileA.write('写入的内容')
fileA.close()
  • 二进制形式写入
fileA = open('./Test2.txt','wb')
fileA.write('写入的内容'.encode('utf-8'))
fileA.close()
  • 追加写入a
fileA = open('./Test.txt','a')
fileA.write('写入的内容')
fileA.close()
  • 追加写入ab
fileA = open('./Test.txt','ab')
fileA.write('写入的内容'.encode('utf-8'))
fileA.close()

3.读操作

  • 读取所有
fileA = open('./Test.txt','r',encoding='utf-8')
print(fileA.read())
fileA.close()
  • 读取几个
fileA = open('./Test.txt','r',encoding='utf-8')
print(fileA.read(4))
fileA.close()
  • 读一行
fileA = open('./Test.txt','r',encoding='utf-8')
print(fileA.readline())
fileA.close()
  • 读所有行
fileA = open('./Test.txt','r',encoding='utf-8')
print(fileA.readlines())
fileA.close()
  • 读取二进制
fileA = open('./Test.txt','rb')
data = fileA.read()
print(data)
print(data.decode('utf-8'))
fileA.close()

4.With上下文管理对象

自动释放打开关联对象

with open('./Test.txt','rb') as fileA :data = fileA.read()print(data)print(data.decode('utf-8'))#自动释放

小结

文件读写的几种操作方式
read r r+ rb rb+
r r+ 只读使用普通读取场景
rb rb+ 适用于文件图片视频音频这样文件读取
write WW+ wb+
w ba ab w wb+ W+每次都会去创建文件
二进制读写的时候要注意编码问题,默认情况下我们写入文件的编码是gbk
a ab a+ 在原有的文件的基础之后去[文件指针的末尾]去追加,并不会每次的都去创建一个新的文件

案例

old_file = input('请输入 要备份的文件名:')
file_list=old_file.split('.')
#构造新的文件名.加上备份的后缀
new_file=file_list[0]+'_ 备份. '+file_list[1]
try:#监视啊哟处理的逻辑with open(old_file,'r') as old_f,open(new_file,'w')as new_f:while True:content=old_f.read(1024) #-次读取1024字符new_f.write( content)if len( content)<1024:break
except Exception as msg:print (msg )
pass

5.文件定位

  • tell() 返回指针当前所在的位置
with open('./Test.txt','r',encoding='utf-8') as fileA :fileA.read(1)print(fileA.tell())fileA.read(2)print(fileA.tell())
  • truncate() 对源文件进行截取操作
with open('./Test.txt','r+') as fileA :fileA.truncate(2)print(fileA.read())
  • seek() 更改光标指针位置
    只有二进制模式打开文件才能更改光标指针位置
fileA.seek(-2,0)#0初始位置开始
fileA.seek(-2,1)#1当前位置开始
fileA.seek(-2,2)#2末尾位置开始
with open('./test.txt','rb') as fileA :data=fileA.read(2)print(data.decode('gbk'))fileA.seek(-2,1)#当前位置向前移动2格ok = fileA.read(2)print(ok.decode('gbk'))

【Python】学习笔记总结3(Python文件操作)相关推荐

  1. Python学习笔记:目录与文件操作

    文章目录 一.案例演示 1.导入os与shutil模块 2.获取当前工作目录 3.创建目录 4.切换当前目录 5.创建文件,写入内容 6.打开文件,查看内容 7.查看目录信息 8.拷贝文件 9.文件改 ...

  2. Python学习系列(五)(文件操作及其字典)

    Python学习系列(五)(文件操作及其字典) Python学习系列(四)(列表及其函数) 一.文件操作 1,读文件      在以'r'读模式打开文件以后可以调用read函数一次性将文件内容全部读出 ...

  3. [python教程入门学习]python学习笔记(CMD执行文件并传入参数)

    本文章向大家介绍python学习笔记(CMD执行文件并传入参数),主要包括python学习笔记(CMD执行文件并传入参数)使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋 ...

  4. Python学习笔记:使用Python操作数据库

    Python学习笔记:使用Python操作数据库 一.数据库编程接口 为了对数据库进行统一的操作,大多数语言都提供了简单的.标准化的数据库接口(API).在Python Database API 2. ...

  5. Python学习笔记:用Python获取数据(本地数据与网络数据)

    Python学习笔记:用Python获取数据(本地数据与网络数据) 一.用Python获取本地数据 读写文件(三种基本模式:r, w, a) 1.写文件 2.读文件

  6. python学习笔记26(python中__name__的使用)

    python学习笔记26(python中__name__的使用) 在python中,每个py文件都是一个模块,也都是一个可执行文件,即包含main方法.因此,对每个py文件,可以单独运行,也可以imp ...

  7. python学习笔记1之-python简介及其环境安装

    python学习笔记之-python简介及其环境安装 最近几年python之火不用多说,最近开始利用时间自学python,在学习的过程中,按照自己的思路和理解记录下学习的过程,并分享出来,如果正好你也 ...

  8. Python学习笔记——glob模块【文件、路径操作】

    最近做了一个将dicom文件转化为mhd文件的任务,由于要进行批量转化所以遍历文件夹必不可少,刚开始学习python编程,所以把用过的模块用法记录下来,以加深记忆,方便查阅,最后参考前人的博客做了gl ...

  9. python 系统学习笔记(八)---文件操作

    模式 描述 r 以读方式打开文件,可读取文件信息. w 以写方式打开文件,可向文件写入信息.如文件存在,则清空该文件,再写入新内容 a 以追加模式打开文件(即一打开文件,文件指针自动移到文件末尾),如 ...

  10. python学习笔记(九)——文件和异常(重点)

    学文件的目的:数据不能可能一直在内存中存储,持久化存储到磁盘就需要用到文件了! 一.文件和上下文管理器(重点) 1.打开文件-open() 方法 Python open() 方法用于打开一个文件,并返 ...

最新文章

  1. jquery.raty评星插件
  2. 计算机绘图 招聘,计算机绘图-网课答案.pdf
  3. 微信小游戏爆款秘笈 数据库MongoDB攻略篇
  4. mysql sqlserver分页_SQLServer常用分页方式
  5. 神策营销云:「在线教育」行业,如何借“运营工具”玩转微信生态?
  6. java classloader_Java Classloader原理分析
  7. mysql.5.5.21_centos6下mysql-5.5.21的安装
  8. mysql coalesce函数用法_MySQL coalesce函数用法说明(转)
  9. html5手机移动端三级联动城市选择器
  10. kali2018安装教程_2018最新Kali升级教程
  11. 我是如何在GitHub上开源一个项目的(截图说明) (VS2010可以安装git插件)
  12. 【TWVRP】基于matalb模拟退火算法求解带时间窗的车辆路径规划问题【含Matlab源码 160期】
  13. 华为鸿蒙系统自带什么输入法,搜狗输入法华为鸿蒙系统OS2.0版下载-搜狗输入法华为鸿蒙版v10.15.2 手机版-腾飞网...
  14. java高级工程师个人简历模板
  15. ThreadLocal工具类
  16. Particle Filtering粒子滤波
  17. 见信如晤::‘卷福’读信:我全心全意去拥抱您
  18. fastjson不序列化空属性,解决办法
  19. 面试,这些问题一定要问清楚!
  20. 180501 逆向-RedHat(Reverse)

热门文章

  1. 谈谈自动微分(Automatic Differentiation)
  2. 想了解推荐系统最新研究进展?请收好这16篇论文
  3. 哈佛NLP组论文解读:基于隐变量的注意力模型 | 附开源代码
  4. time库python_Python的time库的一些简单函数以及用法
  5. Spring Security——SessionManagement中InvalidSessionStrategy自定义——简单跳过Fitter过滤刷新Session
  6. C#——《C#语言程序设计》实验报告——数据库编程——基于ADO.NET技术的数据库操作DEMO
  7. C#——扩展.NET Framework基本类型的功能DEMO
  8. MyBatis Plus——启动/关闭控制台LOGO
  9. MyBatis——insert并返回主键ID解决方案
  10. 《数据结构与算法》实验报告——二叉树的遍历