python的文件操作方法汇总


Posted in Python onNovember 10, 2017

文件的读操作

示例:

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

运行结果:

复制代码

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

文件的写操作

知识点:

1. 写操作前,文件先格式化清空文件

2.清空操作,在执行open的w方法后,清空

print("写的操作,写文件的时候,不能调用读方法,读文件的时候,不能调用写方法")
 
f = open('python','w',encoding='utf8')
f.write("I must learn python \nbecause, python is important \n")
f.write("java is better?")
f.write("maybe") #上面的语句,没有加换行符,所以输出的内容是紧接的
f.close()

运行结果:

打开文件后显示如下

I must learn python 
because, python is important 
java is better?maybe

文件的append方法

语法格式:

f = open('文件名','a','encoding = utf8')

文件这种方法为追加模式:1, 空白文件中,直接从头开始写入内容; 2 有内容的文件,会在末尾开始继续写入内容

示例:

f = open('python','a',encoding='utf8')
f.write("花开又花落")
f.close()

运行结果:

I must learn python 
because, python is important 
java is better?maybe花开又花落

readline 和 readlines

 readline是逐行读取

readlines是全文读取

示例:

print("readline方法")
 f = open('无题','r',encoding='utf8')
 a = f.readline()
 print("此时光标位置:",f.tell())
 b = f.readline()
 print("此时光标位置:",f.tell())
 print(a.strip()) #strip是字符串方法中去除空格和换行的方法
 print(b.strip())
 
 
 print("readlines方法,会将每行的内容组成一个列表打印")
 f = open('无题','r',encoding='utf8')
 c = f.readlines()
 print(c)
 print(id(c))
 print(id(f))
 for i in c:
  print(i.strip())
 print("遍历方法")
 f.seek(0)
 for i in f:
  print(i.strip())
 f.close() #文件的操作中,close()方法一定不能忘记

运行结果:

readline方法
此时光标位置: 23
此时光标位置: 46
昨夜星辰昨夜风
画楼西畔桂堂东
readlines方法,会将每行的内容组成一个列表打印
['昨夜星辰昨夜风\n', '画楼西畔桂堂东\n', '身无彩凤双飞翼\n', '心有灵犀一点通']
37826824
5344280
昨夜星辰昨夜风
画楼西畔桂堂东
身无彩凤双飞翼
心有灵犀一点通
遍历方法
昨夜星辰昨夜风
画楼西畔桂堂东
身无彩凤双飞翼
心有灵犀一点通

文件的tell() 和 seek()方法

 示例:

f = open('无题','r',encoding='utf8')
f.read(4)
print('当前光标位置',f.tell())

f.seek(10)
print('当前光标位置',f.tell())
f.close()

#read时,一个中文算三个字符

运行结果:

当前光标位置 12
当前光标位置 10

文件操作之flush方法

import sys,time

for i in range(20):
 sys.stdout.write("#")
 sys.stdout.flush()
 time.sleep(1)

truncate方法

f = open('test','w')
f.write("hello")
f.write("\n")
f.write("python")
f.flush() #这样不用执行close方法,内存中的数据,就会写入到disk
f.close()

f = open('test','a')
f.truncate(2) #截断方法,光标从2开始往后截取
f.close()

其他的文件方法: r+ 读写方法

基于字符read & write

最基本的文件操作当然就是在文件中读写数据。这也是很容易掌握的。现在打开一个文件以进行写操作:

fileHandle = open ( 'test.txt', 'w' )

‘w'是指文件将被写入数据,语句的其它部分很好理解。下一步就是将数据写入文件:

fileHandle.write ( 'This is a test.\nReally, it is.' )

这个语句将“This is a test.”写入文件的第一行,“Really, it is.”写入文件的第二行。最后,我们需要做清理工作,并且关闭文件:

fileHandle.close()

正如你所见,在Python的面向对象机制下,这确实非常简单。需要注意的是,当你再次使用“w”方式在文件中写数据,所有原来的内容都会被删除。如果想保留原来的内容,可以使用“a”方式在文件中结尾附加数据:

fileHandle = open ( 'test.txt', 'a' ) 
fileHandle.write ( '\n\nBottom line.' ) 
fileHandle.close()

然后,我们读取test.txt,并将内容显示出来:

fileHandle = open ( 'test.txt' ) 
print fileHandle.read() 
fileHandle.close()

以上语句将读取整个文件并显示其中的数据。

基于行的读写 line

fileHandle = open ( 'test.txt' ) 
print fileHandle.readline() # "This is a test." 
fileHandle.close()

同时,也可以将文件内容保存到一个list中:

fileHandle = open ( 'test.txt' ) 
fileList = fileHandle.readlines() 
for fileLine in fileList: 
print '>>', fileLine 
fileHandle.close()

 或者在文件中一次读取几个字节的内容:

fileHandle = open ( 'test.txt' ) 
print fileHandle.read ( 1 ) # "T" 
fileHandle.seek ( 4 ) 
print FileHandle.read ( 1 ) # " "(原文有错)
Python 相关文章推荐
纯Python开发的nosql数据库CodernityDB介绍和使用实例
Oct 23 Python
python递归删除指定目录及其所有内容的方法
Jan 13 Python
python数据处理实战(必看篇)
Jun 11 Python
Python判断字符串是否为字母或者数字(浮点数)的多种方法
Aug 03 Python
使用Python进行目录的对比方法
Nov 01 Python
python 获得任意路径下的文件及其根目录的方法
Feb 16 Python
python实现简易学生信息管理系统
Apr 05 Python
python多进程下的生产者和消费者模型
May 07 Python
Django静态资源部署404问题解决方案
May 11 Python
Python中实现一行拆多行和多行并一行的示例代码
Sep 06 Python
python3美化表格数据输出结果的实现代码
Apr 14 Python
解决python3安装pandas出错的问题
May 20 Python
python使用正则表达式的search()函数实现指定位置搜索功能
Nov 10 #Python
Python3调用微信企业号API发送文本消息代码示例
Nov 10 #Python
Python实现图片滑动式验证识别方法
Nov 09 #Python
浅谈python中的占位符
Nov 09 #Python
速记Python布尔值
Nov 09 #Python
浅谈python jieba分词模块的基本用法
Nov 09 #Python
基于python中pygame模块的Linux下安装过程(详解)
Nov 09 #Python
You might like
一个程序下载的管理程序(三)
2006/10/09 PHP
如何提高MYSQL数据库的查询统计速度 select 索引应用
2007/04/11 PHP
php代码中使用换行及(\n或\r\n和br)的应用
2013/02/02 PHP
浅谈PHP调用Webservice思路及源码分享
2014/06/04 PHP
php中file_get_contents与curl性能比较分析
2014/11/08 PHP
一个完整的php文件上传类实例讲解
2015/10/27 PHP
BOOM vs RR BO3 第二场2.13
2021/03/10 DOTA
让图片旋转任意角度及JQuery插件使用介绍
2013/03/20 Javascript
关于删除时的提示处理(确定删除吗)
2013/11/03 Javascript
获取3个数组不重复的值的具体实现
2013/12/30 Javascript
ie7+背景透明文字不透明超级简单的实现方法
2014/01/17 Javascript
jQuery 写的简单打字游戏可以提示正确和错误的次数
2014/07/01 Javascript
jQuery实现鼠标悬停显示提示信息窗口的方法
2015/04/30 Javascript
JQuery学习总结【一】
2016/12/01 Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
2017/03/10 Javascript
JavaScript中 DOM操作方法小结
2017/04/25 Javascript
Vue代码分割懒加载的实现方法
2017/11/23 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
2018/08/10 Javascript
vue实现可视化可拖放的自定义表单的示例代码
2019/03/20 Javascript
JS常用排序方法实例代码解析
2020/03/03 Javascript
vue项目里面引用svg文件并给svg里面的元素赋值
2020/08/17 Javascript
[02:12]2019完美世界全国高校联赛(春季赛)报名开启
2019/03/01 DOTA
用Python计算三角函数之acos()方法的使用
2015/05/15 Python
Python中subprocess的简单使用示例
2015/07/28 Python
pycharm 主题theme设置调整仿sublime的方法
2018/05/23 Python
对Python subprocess.Popen子进程管道阻塞详解
2018/10/29 Python
Python读取stdin方法实例
2019/05/24 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
2019/12/31 Python
CSS3 制作绽放的莲花采用效果叠加实现
2013/01/31 HTML / CSS
俄罗斯女装店:12storeez
2019/10/25 全球购物
怎样写好自我鉴定
2013/12/04 职场文书
数学兴趣小组活动总结
2014/07/08 职场文书
音乐教师求职信范文
2015/03/20 职场文书
2015年社区卫生工作总结
2015/04/21 职场文书
学习商务礼仪心得体会
2016/01/22 职场文书
《扇形统计图》教学反思
2016/02/17 职场文书