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 相关文章推荐
使用django-suit为django 1.7 admin后台添加模板
Nov 18 Python
python实现根据月份和日期得到星座的方法
Mar 27 Python
Python中基本的日期时间处理的学习教程
Oct 16 Python
Python按行读取文件的简单实现方法
Jun 22 Python
深入理解Django的中间件middleware
Mar 14 Python
Python代码块批量添加Tab缩进的方法
Jun 25 Python
使用sklearn进行对数据标准化、归一化以及将数据还原的方法
Jul 11 Python
python3对拉勾数据进行可视化分析的方法详解
Apr 03 Python
python-docx文件定位读取过程(尝试替换)
Feb 13 Python
Pandas —— resample()重采样和asfreq()频度转换方式
Feb 26 Python
Python ckeditor富文本编辑器代码实例解析
Jun 22 Python
python制作一个简单的gui 数据库查询界面
Nov 19 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
libmysql.dll与php.ini是否真的要拷贝到c:\windows目录下呢
2010/03/15 PHP
php中全局变量global的使用演示代码
2011/05/18 PHP
zend framework中使用memcache的方法
2016/03/04 PHP
php处理静态页面:页面设置缓存时间实例
2017/06/22 PHP
PHP创建XML接口示例
2019/07/04 PHP
用Javascript做flash做的事..才完成的一个类.Auntion Action var 0.1
2007/02/23 Javascript
Chrome中JSON.parse的特殊实现
2011/01/12 Javascript
jQuery简单实现banner图片切换
2014/01/02 Javascript
Node.js编码规范
2014/07/14 Javascript
浅析javascript中的事件代理
2015/11/06 Javascript
JavaScript浏览器对象之一Window对象详解
2016/06/03 Javascript
Bootstrap页面缩小变形的快速解决办法
2017/02/03 Javascript
JavaScript实现的原生态Tab标签页功能【兼容IE6】
2017/09/18 Javascript
node.js文件操作系统实例详解
2019/11/05 Javascript
微信小程序 bindtap 传参的实例代码
2020/02/21 Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
2020/04/11 Javascript
pytorch中tensor的合并与截取方法
2018/07/26 Python
Python使用combinations实现排列组合的方法
2018/11/13 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
2019/12/06 Python
关于Tensorflow分布式并行策略
2020/02/03 Python
利用jupyter网页版本进行python函数查询方式
2020/04/14 Python
浅谈python3打包与拆包在函数的应用详解
2020/05/02 Python
Python+PyQt5实现灭霸响指功能
2020/05/25 Python
记录一下scrapy中settings的一些配置小结
2020/09/28 Python
美国在线珠宝商店:SZUL
2017/02/11 全球购物
即时搜索数百万张门票:SeatsForEveryone.com
2018/08/26 全球购物
Habitat家居英国官方网站:沙发、家具、照明、厨房和户外
2019/12/12 全球购物
四年的个人工作自我评价
2013/12/10 职场文书
心理健康课教学反思
2014/02/13 职场文书
2015年政治教研组工作总结
2015/07/22 职场文书
详解Redis实现限流的三种方式
2021/04/27 Redis
Python代码,能玩30多款童年游戏!这些有几个是你玩过的
2021/04/27 Python
php 文件上传至OSS及删除远程阿里云OSS文件
2021/07/04 PHP
使用goaccess分析nginx日志的详细方法
2021/07/09 Servers
 分享一个Python 遇到数据库超好用的模块
2022/04/06 Python