python文件操作的简单方法总结


Posted in Python onNovember 07, 2019

文件操作1

#文件操作流程:1、打开文件,得到一个文件句柄;通过文件句柄操作文件;关闭文件。
#将文件打开文件赋给file1,test_file为文件名,utf-8为文件编码;file1是文件的全量内容
data1 = open("test_file",encoding="utf-8").read()
print(data1)
#打开文件,获取文件句柄file2,后续通过file2这个文件句柄对文件进行各种操作方法,默认文件以只读模式打开,只读时不能对文件进行写操作
file2 = open("test_file","r",encoding="utf-8")
#一次将文件内容全部读取
date2 = file2.read()
#"w"是以写模式打开文件,此模式会先清空文件内容,此时不能对文件进行读操作
file3 = open("test_file3","w",encoding="utf-8")
file3.write("file3 文件写\n")
#"a"是文件追加写模式,此时从文件末尾追加往后面写
file4 = open("test_file","a",encoding="utf-8")
file4.write("file4 文件追加写")
#逐行读文件,readline()或直接对文件句柄进行迭代
file5 = open("test_file","r",encoding="utf-8")
for i in range(5):
  print(file5.readline())
#下面将文件句柄直接进行迭代,文件句柄也是迭代器
for line in file5:
  print(line)

文件操作2

#返回当前文件操作的位置信息,返回的是字符的数量
print(file5.tell())
#手工移动文件操作的当前位置,位置信息为seek的实参
file5.seek(10)
#输出文件当前编码,即打开时使用的编码
print(file5.encoding)
#输出文件名称
print(file5.name)
#判断文件是否可读,返回布尔类型,与文件打开时指定的打开模式相关
print(file5.readable())
#判断文件是否可写,返回布尔类型,与文件打开时指定的打开模式相关
print(file5.writable())
#将文件写的内容强制刷到硬盘
file5.flush()
#判断文件是否关闭,返回布尔类型
print(file5.closed)
#默认清空文件内容,传递实参的话就是从文件开头截断多少字符,总是从文件开头开始截断,不论当前文件读写所处的位置
#file5.truncate()
#文件读写模式“r+”,读是从文件开头读,写是从文件末尾往后写,操作文件位置指针是读的位置,只能继续往文件后面追加写
#文件写读模式“w+”,先创建新文件然后写,写了以后可以读。操作文件位置指针是读的位置,只能继续往文件后面追加写
#以二进制读取文件“rb”,打开文件时没有encoding这个参数
file6 = open("binary_file","wb")
#二进制模式打开文件向写入时需要将字符串转换为二进制,否则写报错
file6.write("binary file".encode(encoding="utf-8"))
#文件的修改
#方法1将文件一次全部读取在使用replace,将这个文件修改后的值返回,不修改原文件
data4 = open("test_file4",encoding="utf-8").read()
print(data4.replace("789","7788991010",2))
print(data4)
#方法2逐行读取做判断,写入到一个新文件
file7 = open("test_file4","r",encoding="utf-8")
file8 = open("test_file4_new","w",encoding="utf-8")
for line in file7:
  if "789" in line:
    line = line.replace("789","7788991010")
  file8.write(line)
file7.close()
file8.close()

知识点扩展:

print("->文件句柄的获取,读操作:")
 
f = open('无题','r',encoding='utf8')
d = f.read()
f.close()
print(d)
 
print('->例二:')
f = open('无题','r',encoding='utf8')
e = f.read(9)
f.close()
print(e)
#python3中,文件中一个中英文都占位1

运行结果:

复制代码

->文件句柄的获取,读操作:
昨夜星辰昨夜风
画楼西畔桂堂东
身无彩凤双飞翼
心有灵犀一点通
->例二:
昨夜星辰昨夜风
画

以上方法很简单,感谢大家的学习和对三水点靠木的支持。

Python 相关文章推荐
python time模块用法实例详解
Sep 11 Python
python中string模块各属性以及函数的用法介绍
May 30 Python
python3中bytes和string之间的互相转换
Feb 09 Python
Python微信公众号开发平台
Jan 25 Python
解决python给列表里添加字典时被最后一个覆盖的问题
Jan 21 Python
python 利用turtle模块画出没有角的方格
Nov 23 Python
django 实现手动存储文件到model的FileField
Mar 30 Python
python 实现读取csv数据,分类求和 再写进 csv
May 18 Python
python--shutil移动文件到另一个路径的操作
Jul 13 Python
python 实现mysql自动增删分区的方法
Apr 01 Python
python - asyncio异步编程
Apr 06 Python
Python中基础数据类型 set集合知识点总结
Aug 02 Python
详解Django admin高级用法
Nov 06 #Python
Python全局锁中如何合理运用多线程(多进程)
Nov 06 #Python
Python实现socket非阻塞通讯功能示例
Nov 06 #Python
Python中生成一个指定长度的随机字符串实现示例
Nov 06 #Python
详解Python list和numpy array的存储和读取方法
Nov 06 #Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
Nov 06 #Python
Python list与NumPy array 区分详解
Nov 06 #Python
You might like
Json_decode 解析json字符串为NULL的解决方法(必看)
2017/02/17 PHP
thinkPHP5项目中实现QQ第三方登录功能
2017/10/20 PHP
php查询内存信息操作示例
2019/05/09 PHP
javascript 对表格的行和列都能加亮显示
2008/12/26 Javascript
jQuery数组处理代码详解(含实例演示)
2012/02/03 Javascript
鼠标滑在标题上显示图片的JS代码
2013/11/19 Javascript
js获取当前页面路径示例讲解
2014/01/08 Javascript
jquery控制display属性为none或block
2014/03/31 Javascript
jQuery实现的背景动态变化导航菜单效果
2015/08/24 Javascript
JavaScript数值千分位格式化的两种简单实现方法
2016/08/01 Javascript
js实现键盘自动打字效果
2016/12/23 Javascript
微信小程序-拍照或选择图片并上传文件
2017/01/06 Javascript
JavaScript实现替换字符串中最后一个字符的方法
2017/03/07 Javascript
js模拟支付宝密码输入框
2017/04/11 Javascript
bootstrap的常用组件和栅格式布局详解
2017/05/02 Javascript
关于vue面试题汇总
2018/03/20 Javascript
详解三种方式解决vue中v-html元素中标签样式
2018/11/22 Javascript
JavaScript惰性载入函数实例分析
2019/03/27 Javascript
Vue-cli3简单使用(图文步骤)
2019/04/30 Javascript
jquery.pager.js实现分页效果
2019/07/29 jQuery
vue动态合并单元格并添加小计合计功能示例
2020/11/26 Vue.js
[00:32]2018DOTA2亚洲邀请赛Newbee出场
2018/04/03 DOTA
Python安装第三方库及常见问题处理方法汇总
2016/09/13 Python
windows系统下Python环境的搭建(Aptana Studio)
2017/03/06 Python
Python3标准库之threading进程中管理并发操作方法
2020/03/30 Python
QML用PathView实现轮播图
2020/06/03 Python
查看keras各种网络结构各层的名字方式
2020/06/11 Python
python能做哪些生活有趣的事情
2020/09/09 Python
中国电子产品外贸网站:MiniIntheBox
2017/02/06 全球购物
学习十八大报告感言
2014/02/04 职场文书
国际贸易专业求职信
2014/06/04 职场文书
2015年数学教研工作总结
2015/07/22 职场文书
Nginx解决前端访问资源跨域问题的方法详解
2021/03/31 Servers
matlab xlabel位置的设置方式
2021/05/21 Python
MySql 8.0及对应驱动包匹配的注意点说明
2021/06/23 MySQL
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python