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的Bottle框架中使用微信API的示例
Apr 23 Python
Python中使用不同编码读写txt文件详解
May 28 Python
python中 chr unichr ord函数的实例详解
Aug 06 Python
Python微信公众号开发平台
Jan 25 Python
python中将一个全部为int的list 转化为str的list方法
Apr 09 Python
解决python大批量读写.doc文件的问题
May 08 Python
Python读写及备份oracle数据库操作示例
May 17 Python
Python3中的列表生成式、生成器与迭代器实例详解
Jun 11 Python
python输入多行字符串的方法总结
Jul 02 Python
python TK库简单应用(实时显示子进程输出)
Oct 29 Python
python内置模块collections知识点总结
Dec 19 Python
Pandas搭配lambda组合使用详解
Jan 22 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
PHP观察者模式原理与简单实现方法示例
2017/08/25 PHP
php反射学习之不用new方法实例化类操作示例
2019/06/14 PHP
javascript 添加和移除函数的通用方法
2009/10/20 Javascript
jquery提示 "object expected"的解决方法
2009/12/13 Javascript
jQuery方法简洁实现隔行换色及toggleClass的使用
2013/03/15 Javascript
jquery对元素拖动排序示例
2014/01/16 Javascript
5个书写JavaScript代码的坏习惯,看看你中枪了没?
2014/11/06 Javascript
JQuery判断checkbox是否选中及其它复选框操作方法合集
2015/06/01 Javascript
javascript实现信息增删改查的方法
2015/07/25 Javascript
jQuery实现区域打印功能代码详解
2016/06/17 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
2016/09/08 Javascript
jquery实现简单的瀑布流布局
2016/12/11 Javascript
yii form 表单提交之前JS在提交按钮的验证方法
2017/03/15 Javascript
vue中将网页打印成pdf实例代码
2017/06/15 Javascript
vue-router路由参数刷新消失的问题解决方法
2017/06/17 Javascript
angular-tree-component的使用详解
2018/07/30 Javascript
vue2.0 + ele的循环表单及验证字段方法
2018/09/18 Javascript
详解从NodeJS搭建中间层再谈前后端分离
2018/11/13 NodeJs
Vue之beforeEach非登录不能访问的实现(代码亲测)
2019/07/18 Javascript
JS实现百度搜索框
2021/02/25 Javascript
python实现从pdf文件中提取文本,并自动翻译的方法
2018/11/28 Python
python 二维矩阵转三维矩阵示例
2019/11/30 Python
TensorFlow的环境配置与安装方法
2021/02/20 Python
css3模拟jq点击事件的实例代码
2017/07/06 HTML / CSS
HTML中使用SVG与SVG预定义形状元素介绍
2013/06/28 HTML / CSS
HTML5几个设计和修改的页面范例分享
2015/09/29 HTML / CSS
BONIA官方网站:国际奢侈品牌和皮革专家
2016/11/27 全球购物
Erwin Müller穆勒家居瑞士官网:您整个家庭的邮购公司
2019/12/28 全球购物
super()与this()的区别
2016/01/17 面试题
函授教育个人学习的自我评价
2013/12/31 职场文书
《巨人的花园》教学反思
2014/02/12 职场文书
2014婚礼司仪主持词
2014/03/14 职场文书
违纪检讨书
2015/01/27 职场文书
幼儿园开学家长寄语(2016秋季)
2015/12/03 职场文书
JavaScript流程控制(分支)
2021/12/06 Javascript
JS中forEach()、map()、every()、some()和filter()的用法
2022/05/11 Javascript