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 相关文章推荐
web.py中调用文件夹内模板的方法
Aug 26 Python
在Python3中使用asyncio库进行快速数据抓取的教程
Apr 02 Python
Python缩进和冒号详解
Jun 01 Python
解决python3 json数据包含中文的读写问题
May 10 Python
pandas读取csv文件,分隔符参数sep的实例
Dec 12 Python
Python实现带参数的用户验证功能装饰器示例
Dec 14 Python
python实现石头剪刀布小游戏
Jan 20 Python
Pycharm使用之设置代码字体大小和颜色主题的教程
Jul 12 Python
Django使用uwsgi部署时的配置以及django日志文件的处理方法
Aug 30 Python
Python3 sys.argv[ ]用法详解
Oct 24 Python
python中数字是否为可变类型
Jul 08 Python
Python制作春联的示例代码
Jan 22 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
谏山创故乡大分县日田市水坝将设立《进击的巨人》立艾伦、三笠以及阿尔敏的铜像!
2020/03/06 日漫
php配合jquery实现增删操作具体实例
2013/12/12 PHP
PHP ADODB生成下拉列表框功能示例
2018/05/29 PHP
php日志函数error_log用法实例分析
2019/09/23 PHP
Javascript 各浏览器的 Javascript 效率对比
2008/01/23 Javascript
JavaScript this调用规则说明
2010/03/08 Javascript
收集的一些Array及String原型对象的扩展实现代码
2010/12/05 Javascript
在JavaScript并非所有的一切都是对象
2013/04/11 Javascript
jQuery中noconflict函数的实现原理分解
2015/02/03 Javascript
限制文本框只能输入数字||只能是数字和小数点||只能是整数和浮点数
2016/05/27 Javascript
基于JavaScript实现树形下拉框
2016/08/10 Javascript
VUE长按事件需求详解
2017/10/18 Javascript
babel的使用及安装配置教程
2018/02/22 Javascript
vue项目中引入Sass实例方法
2019/08/27 Javascript
微信小程序实现吸顶特效
2020/01/08 Javascript
python实现的防DDoS脚本
2011/02/08 Python
Python实现螺旋矩阵的填充算法示例
2017/12/28 Python
实用自动化运维Python脚本分享
2018/06/04 Python
PyQt5实现简单数据标注工具
2019/03/18 Python
Python3.5运算符操作实例详解
2019/04/25 Python
Python中的 is 和 == 以及字符串驻留机制详解
2019/06/28 Python
python 实现的发送邮件模板【普通邮件、带附件、带图片邮件】
2019/07/06 Python
python实现tail实时查看服务器日志示例
2019/12/24 Python
python实现UDP协议下的文件传输
2020/03/20 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
2020/12/18 Python
Bootstrap 学习分享
2012/11/12 HTML / CSS
Html5调用手机摄像头并实现人脸识别的实现
2018/12/21 HTML / CSS
波兰化妆品和护肤品购物网站:eKobieca
2019/08/30 全球购物
台湾三立电视电商平台:电电购
2019/09/09 全球购物
公安局副政委班子个人对照检查材料
2014/10/04 职场文书
缓刑人员思想汇报
2014/10/11 职场文书
导游词之山东八大关
2019/12/18 职场文书
Nginx进程调度问题详解
2021/09/25 Servers
基于PyQT5制作一个桌面摸鱼工具
2022/02/15 Python
MySQL一劳永逸永久支持输入中文的方法实例
2022/08/05 MySQL
javascript中Set、Map、WeakSet、WeakMap区别
2022/12/24 Javascript