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脚本在Appium库上对移动应用实现自动化测试
Apr 17 Python
python实现统计代码行数的方法
May 22 Python
Python对象与引用的介绍
Jan 24 Python
python tkinter实现界面切换的示例代码
Jun 14 Python
set在python里的含义和用法
Jun 24 Python
python实现自动化上线脚本的示例
Jul 01 Python
详解python实现小波变换的一个简单例子
Jul 18 Python
详解解决Python memory error的问题(四种解决方案)
Aug 08 Python
Numpy一维线性插值函数的用法
Apr 22 Python
利用Python的folium包绘制城市道路图的实现示例
Aug 24 Python
解决pytorch-gpu 安装失败的记录
May 24 Python
用python批量解压带密码的压缩包
May 31 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 从数据库提取二进制图片的处理代码
2009/09/09 PHP
在WINDOWS中设置计划任务执行PHP文件的方法
2011/12/19 PHP
PHP文件缓存内容保存格式实例分析
2014/08/20 PHP
php开发中的页面跳转方法总结
2015/04/26 PHP
JS添加删除一组文本框并对输入信息加以验证判断其正确性
2013/04/11 Javascript
javascript中键盘事件用法实例分析
2015/01/30 Javascript
JS正则表达式比较常见用法
2016/01/26 Javascript
JavaScript导航脚本判断当前导航
2016/07/12 Javascript
微信小程序 video详解及简单实例
2017/01/16 Javascript
简单谈谈Javascript函数中的arguments
2017/02/09 Javascript
vue如何使用 Slot 分发内容实例详解
2017/09/05 Javascript
React注册倒计时功能的实现
2018/09/06 Javascript
利用Node.js如何实现文件循环覆写
2019/04/05 Javascript
vue的$http的get请求要加上params操作
2020/11/12 Javascript
[02:11]2016国际邀请赛中国区预选赛最美TA采访现场玩家
2016/06/28 DOTA
Python使用MD5加密字符串示例
2014/08/22 Python
python与php实现分割文件代码
2017/03/06 Python
Python使用numpy实现BP神经网络
2018/03/10 Python
对numpy数据写入文件的方法讲解
2018/07/09 Python
python Shapely使用指南详解
2020/02/18 Python
python实现QQ邮箱发送邮件
2020/03/06 Python
Python调用系统命令os.system()和os.popen()的实现
2020/12/31 Python
HTML5 Canvas基本线条绘制的实例教程
2016/03/17 HTML / CSS
size?爱尔兰官方网站:英国伦敦的球鞋精品店
2019/03/31 全球购物
KIKO MILANO俄罗斯官网:意大利领先的化妆品和护肤品品牌
2021/01/09 全球购物
中职生自荐信
2013/10/13 职场文书
授权委托书
2014/09/17 职场文书
群众路线查摆问题整改措施
2014/10/10 职场文书
预备党员群众路线教育实践活动思想汇报2014
2014/10/25 职场文书
社区党建工作汇报材料
2014/10/27 职场文书
龙潭大峡谷导游词
2015/02/10 职场文书
清明节主题班会
2015/08/14 职场文书
团干部培训班心得体会
2016/01/06 职场文书
浅谈vue2的$refs在vue3组合式API中的替代方法
2021/04/18 Vue.js
SQL Server中常用截取字符串函数介绍
2022/03/16 SQL Server
python文件与路径操作神器 pathlib
2022/04/01 Python