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实现跨文件全局变量的方法
Jul 07 Python
在Python中利用Pandas库处理大数据的简单介绍
Apr 07 Python
python实现bucket排序算法实例分析
May 04 Python
Python数据类型详解(四)字典:dict
May 12 Python
Python中不同进制的语法及转换方法分析
Jul 27 Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
May 24 Python
用Python一键搭建Http服务器的方法
Jun 01 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
Jul 22 Python
python装饰器代替set get方法实例
Dec 19 Python
Ubuntu中配置TensorFlow使用环境的方法
Apr 21 Python
python爬取天气数据的实例详解
Nov 20 Python
python反编译教程之2048小游戏实例
Mar 03 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
PHP中数字检测is_numeric与ctype_digit的区别介绍
2012/10/04 PHP
基于PHP创建Cookie数组的详解
2013/07/03 PHP
PHP和javascript常用正则表达式及用法实例
2014/07/01 PHP
PHP利用MySQL保存session的实现思路及示例代码
2014/09/09 PHP
Adnroid 微信内置浏览器清除缓存
2016/07/11 PHP
很多人都是用下面的js刷新站IP和PV
2008/09/05 Javascript
Java 正则表达式学习总结和一些小例子
2012/09/13 Javascript
关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器
2014/02/11 Javascript
Jquery 实现checkbox全选方法
2015/01/28 Javascript
jquery制做精致的倒计时特效
2016/06/13 Javascript
微信小程序 动态的设置图片的高度和宽度详解及实例代码
2017/02/24 Javascript
jQuery实现base64前台加密解密功能详解
2017/08/29 jQuery
js canvas实现简单的图像扩散效果
2020/06/28 Javascript
vue实现文章内容过长点击阅读全文功能的实例
2017/12/28 Javascript
使用vue-cli创建项目的图文教程(新手入门篇)
2018/05/02 Javascript
vue利用v-for嵌套输出多层对象,分别输出到个表的方法
2018/09/07 Javascript
angularjs获取到My97DatePicker选中的值方法
2018/10/02 Javascript
python中私有函数调用方法解密
2016/04/29 Python
Ruby元编程基础学习笔记整理
2016/07/02 Python
python机器学习之神经网络(一)
2017/12/20 Python
1 行 Python 代码快速实现 FTP 服务器
2018/01/25 Python
pandas 使用apply同时处理两列数据的方法
2018/04/20 Python
Python使用爬虫爬取静态网页图片的方法详解
2018/06/05 Python
解决pycharm安装后代码区不能编辑的问题
2018/10/28 Python
python实现学员管理系统
2019/02/26 Python
python 使用opencv 把视频分割成图片示例
2019/12/12 Python
使用Keras 实现查看model weights .h5 文件的内容
2020/06/09 Python
提供世界各地便宜的机票:Sky-tours
2016/07/21 全球购物
编写一个类体现构造,公有,私有方法,静态,私有变量
2013/08/10 面试题
有关打架的检讨书
2014/01/25 职场文书
酒鬼酒广告词
2014/03/21 职场文书
2015年南京大屠杀纪念日活动总结
2015/03/24 职场文书
小学英语教学经验交流材料
2015/11/02 职场文书
通过shell脚本对mysql的增删改查及my.cnf的配置
2021/07/07 MySQL
MySQL命令无法输入中文问题的解决方式
2021/08/30 MySQL
python函数的两种嵌套方法使用
2022/04/02 Python