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中处理时间之clock()方法的使用
May 22 Python
详解Python的Django框架中Manager方法的使用
Jul 21 Python
Python使用logging结合decorator模式实现优化日志输出的方法
Apr 16 Python
Python3.6正式版新特性预览
Dec 15 Python
Python的CGIHTTPServer交互实现详解
Feb 08 Python
Python实现检测文件MD5值的方法示例
Apr 11 Python
浅谈Tensorflow模型的保存与恢复加载
Apr 26 Python
Python3爬虫使用Fidder实现APP爬取示例
Nov 27 Python
如何用Python破解wifi密码过程详解
Jul 12 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
Sep 11 Python
Python计算指定日期是今年的第几天(三种方法)
Mar 26 Python
Python爬虫之Selenium警告框(弹窗)处理
Dec 04 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
动态生成gif格式的图像要注意?
2006/10/09 PHP
PHP HTML JavaScript MySQL代码如何互相传值的方法分享
2012/09/30 PHP
如何使用php判断所处服务器操作系统的类型
2013/06/20 PHP
phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法
2014/07/19 PHP
php计算函数执行时间的方法
2015/03/20 PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
2018/06/05 PHP
php微信公众号开发之音乐信息
2018/10/20 PHP
13个绚丽的Jquery 界面设计网站推荐
2010/09/28 Javascript
Firefox中beforeunload事件的实现缺陷浅析
2012/05/03 Javascript
jQuery应用之jQuery链用法实例
2015/01/19 Javascript
JavaScript事件委托实例分析
2015/05/26 Javascript
sea.js常用的api简易文档
2016/11/15 Javascript
AngularJS 购物车全选/取消全选功能的实现方法
2017/08/14 Javascript
VUE DOM加载后执行自定义事件的方法
2018/09/07 Javascript
微信小程序中使用echarts的实现方法
2019/04/24 Javascript
Nodejs监听日志文件的变化的过程解析
2019/08/04 NodeJs
原生js实现轮播图特效
2020/05/04 Javascript
VUE和Antv G6实现在线拓扑图编辑操作
2020/10/28 Javascript
[00:14]护身甲盾
2019/03/06 DOTA
推荐11个实用Python库
2015/01/23 Python
python3实现公众号每日定时发送日报和图片
2018/02/24 Python
Django利用cookie保存用户登录信息的简单实现方法
2019/05/27 Python
Pycharm新手教程(只需要看这篇就够了)
2019/06/18 Python
Python如何实现定时器功能
2020/05/28 Python
python实例化对象的具体方法
2020/06/17 Python
迪卡侬荷兰官网:Decathlon荷兰
2017/10/29 全球购物
美国羽绒床上用品第一品牌:Pacific Coast
2018/08/25 全球购物
Nisbets爱尔兰:英国最大的厨房和餐饮设备供应商
2019/01/26 全球购物
Java基础类库面试题
2013/09/04 面试题
管理工程专业求职信
2014/08/10 职场文书
构建和谐校园倡议书
2015/01/19 职场文书
党建工作目标管理责任书
2015/01/29 职场文书
行政处罚听证告知书
2015/07/01 职场文书
2016寒假社会实践心得体会范文
2015/10/09 职场文书
解决mysql的int型主键自增问题
2021/07/15 MySQL
动画电影《龙珠超 超级英雄》延期上映
2022/03/20 日漫