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 修改文件指定行的方法
May 15 Python
python导入时小括号大作用
Jan 10 Python
使用Python绘制图表大全总结
Feb 11 Python
利用python获取Ping结果示例代码
Jul 06 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
Jul 30 Python
Python设计模式之职责链模式原理与用法实例分析
Jan 11 Python
PyTorch的深度学习入门教程之构建神经网络
Jun 27 Python
关于python中密码加盐的学习体会小结
Jul 15 Python
详解python 破解网站反爬虫的两种简单方法
Feb 09 Python
浅谈pytorch torch.backends.cudnn设置作用
Feb 20 Python
python中的unittest框架实例详解
Feb 05 Python
Python学习之异常中的finally使用详解
Mar 16 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读取CURL模拟登录时生成Cookie文件的方法
2014/11/04 PHP
php实现的mongodb操作类
2015/05/28 PHP
php无限级分类实现方法分析
2016/10/19 PHP
由prototype_1.3.1进入javascript殿堂-类的初探
2006/11/06 Javascript
我见过最全的个人js加解密功能页面
2007/12/12 Javascript
jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页
2008/12/25 Javascript
在js中单选框和复选框获取值的方式
2009/11/06 Javascript
extJs 下拉框联动实现代码
2010/04/09 Javascript
jQuery实现数秒后自动提交form的方法
2015/03/05 Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
2015/09/17 Javascript
JS 拦截全局ajax请求实例解析
2016/11/29 Javascript
Html中 IFrame的用法及注意点
2016/12/22 Javascript
angular之ng-template模板加载
2017/11/09 Javascript
JS实现的JSON序列化操作简单示例
2018/07/02 Javascript
iconfont的三种使用方式详解
2018/08/05 Javascript
微信小程序实现简单评论功能
2018/11/28 Javascript
vue的三种图片引入方式代码实例
2019/11/19 Javascript
Vue+Element-UI实现上传图片并压缩
2019/11/26 Javascript
js实现简单音乐播放器
2020/06/30 Javascript
JavaScript仿京东轮播图效果
2021/02/25 Javascript
[34:39]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#1COL VS EG第二局
2016/03/05 DOTA
[01:01:52]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第二场 1月9日
2021/03/11 DOTA
python pandas读取csv后,获取列标签的方法
2018/11/12 Python
CSS3弹性盒模型开发笔记(一)
2016/04/26 HTML / CSS
施华洛世奇英国官网:SWAROVSKI英国
2017/03/13 全球购物
美国CVS药店官网:CVS Pharmacy
2018/07/26 全球购物
L*SPACE官网:比基尼、泳装和度假服装
2019/03/18 全球购物
英国DIY汽车维修配件网站:DIY Car Service Parts
2019/08/30 全球购物
若干个Java基础面试题
2015/05/19 面试题
医护人员英文求职信范文
2013/11/26 职场文书
大学考试作弊检讨书
2014/01/30 职场文书
大学生会计职业生涯规划范文
2014/02/28 职场文书
社会实践评语
2014/04/28 职场文书
三年级学生评语大全
2014/12/26 职场文书
Python基础之数据结构详解
2021/04/28 Python
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis