Python读写文件模式和文件对象方法实例详解


Posted in Python onSeptember 17, 2019

本文实例讲述了Python读写文件模式和文件对象方法。分享给大家供大家参考,具体如下:

一. 读写文件模式

利用open() 读写文件时,将会返回一个 file 对象,其基本语法格式如:  open ( filename, mode)

其中,filename变量是一个包含了你要访问的文件名称的字符串值。而mode决定了你打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。

注:这个参数是非强制的,默认文件访问模式为只读模式(r)

Python读写文件模式和文件对象方法实例详解

例如,我们现在将一个字符串写入到test.txt文件中,其中test.txt的存储位置为: "E:/orig_data/test.txt" ,

具体操作如下:

#=============================================================================
#打开一个文件
file = open("E:/orig_data/test.txt" ,"w")
file.write("Python是一个很好的语言,和MATLAB一样简单好用!")
#关闭打开的文件
file.close()
#文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文
#件数量也是有限的

#为了简化操作,一般我们采用如下方式:
with open("E:/orig_data/test.txt" ,"w") as file:
 file.write("Python是一个很好的语言,和MATLAB一样简单好用!")
 
#读取该文件时
with open("E:/orig_data/test.txt" ,"r") as file:
 print(file.read())
#============================================================================

写入后得到的文件test.txt文件为:

Python读写文件模式和文件对象方法实例详解

在Python读取文件的结果:

Python读写文件模式和文件对象方法实例详解

如果我们在写入文本后,直接立马打印则会出现以下结果:

#=============================================================================
#打开一个文件
file = open("E:/orig_data/test.txt" ,"w")
num = file.write("Python是一个很好的语言,和MATLAB一样简单好用!")
print(num)
#关闭打开的文件
file.close()
#=============================================================================

结果输出的是数字:29,即输出的是双引号内写入字符的个数。

如果我们写入了非字符的文本,则需要现将其进行转换,然后在写入:

#=============================================================================
#打开一个文件
file = open("E:/orig_data/test.txt" ,"w")
value = ("ww.baidu.com",28)
s = str(value)
file.write(s)
#关闭打开的文件
file.close()
#=============================================================================

输出的结果为:

("ww.baidu.com",28)

二. 文件对象的方法

在已有可读取的文件的前提下,读文件的读取方法进行总结:

1. f.read()

为了读取一个文件的内容,调用 f.read(size), 这将读取一定数目的数据, 然后作为字符串或字节对象返回。size 是一个可选的数字类型的参数。 当 size 被忽略了或者为负, 那么该文件的所有内容都将被读取并且返回。

#============================================================================
#读取文件
file = open("E:/orig_data/test.txt" ,"r")
str = file.read()
print(str)
file.close()
#为了简化操作
with open("E:/orig_data/test.txt" ,"r") as file:
 print(file.read())
#===========================================================================

打印的结果:

Python读写文件模式和文件对象方法实例详解

2. f.readline()

f.readline() 会从文件中读取单独的一行。换行符为 '\n'。

f.readline() 如果返回一个空字符串, 说明已经已经读取到最后一行。

#==========================================================================
#为了简化操作,一般我们采用如下方式:
with open("E:/orig_data/test.txt" ,"w") as file:
 file.write("Python是一个很好的语言,和MATLAB一样简单好用。\n是的,的确如此!") 
#============================================================================
#读取文件
file = open("E:/orig_data/test.txt" ,"r")
str = file.readline()
print(str)
file.close()
#为了简化操作
with open("E:/orig_data/test.txt" ,"r") as file:
 print(file.readline())
#===========================================================================

文件读取的结果:

Python读写文件模式和文件对象方法实例详解

说明:写入了两行文本,但是结果只读取了一行,即按行读取的结果。如果想要读取全部文本,可利用for循环,逐行读取,如

#==========================================================================
#为了简化操作,一般我们采用如下方式:
with open("E:/orig_data/test.txt" ,"w") as file:
 file.write("Python是一个很好的语言,和MATLAB一样简单好用。\n是的,的确如此!") 
#============================================================================
#读取文件
file = open("E:/orig_data/test.txt" ,"r")
for line in file:
 print(line, end=' ')
file.close()
#===========================================================================

读取的结果:

Python读写文件模式和文件对象方法实例详解

注:这个方法很简单, 但是并没有提供一个很好的控制。因此实际中更多的我们建议利用f.readlines()来读取。

3. f.readlines()

f.readlines() 将返回该文件中包含的所有行。

如果设置可选参数 sizehint, 则读取指定长度的字节, 并且将这些字节按行分割。

#==========================================================================
#为了简化操作,一般我们采用如下方式:
with open("E:/orig_data/test.txt" ,"w") as file:
 file.write("Python是一个很好的语言,和MATLAB一样简单好用。\n是的,的确如此!") 
#============================================================================
#读取文件
file = open("E:/orig_data/test.txt" ,"r")
str = file.readlines()
print(str)
file.close()
#为了简化操作
with open("E:/orig_data/test.txt" ,"r") as file:
 print(file.readlines())
#===========================================================================

文件读取的结果:

Python读写文件模式和文件对象方法实例详解

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python实现简单的代理服务器
Jul 25 Python
python使用两种发邮件的方式smtp和outlook示例
Jun 02 Python
浅谈python import引入不同路径下的模块
Jul 11 Python
python中利用h5py模块读取h5文件中的主键方法
Jun 05 Python
python版本单链表实现代码
Sep 28 Python
python找出一个列表中相同元素的多个索引实例
Jun 11 Python
python获取指定日期范围内的每一天,每个月,每季度的方法
Aug 08 Python
python区分不同数据类型的方法
Oct 14 Python
python机器学习库xgboost的使用
Jan 20 Python
解决pytorch-yolov3 train 报错的问题
Feb 18 Python
Python Matplotlib绘图基础知识代码解析
Aug 31 Python
通过Python把学姐照片做成拼图游戏
Feb 15 Python
Python爬取破解无线网络wifi密码过程解析
Sep 17 #Python
Python使用random模块生成随机数操作实例详解
Sep 17 #Python
python同时替换多个字符串方法示例
Sep 17 #Python
python 函数的缺省参数使用注意事项分析
Sep 17 #Python
Python 字符串、列表、元组的截取与切片操作示例
Sep 17 #Python
Python 实现大整数乘法算法的示例代码
Sep 17 #Python
Python对接 xray 和微信实现自动告警
Sep 17 #Python
You might like
PHP队列用法实例
2014/11/05 PHP
PHP PDO fetch 模式各种参数的输出结果一览
2015/01/07 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
2015/03/12 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
2016/09/11 PHP
SuperSlide标签切换、焦点图多种组合插件
2015/03/14 Javascript
JQuery插入DOM节点的方法
2015/06/11 Javascript
jQuery插件Validate实现自定义校验结果样式
2016/01/18 Javascript
jQuery 常用代码集锦(必看篇)
2016/05/16 Javascript
JavaScript严格模式下关于this的几种指向详解
2017/07/12 Javascript
js实现拖拽上传图片功能
2017/08/01 Javascript
在vscode里使用.vue代码模板的方法
2018/04/28 Javascript
jQuery实现图片下载代码
2019/07/18 jQuery
JavaScript如何处理移动端拍摄图片旋转问题
2019/11/16 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
Python的randrange()方法使用教程
2015/05/15 Python
解决Mac安装scrapy失败的问题
2018/06/13 Python
python使用matplotlib绘制热图
2018/11/07 Python
python实践项目之监控当前联网状态详情
2019/05/23 Python
利用Python检测URL状态
2019/07/31 Python
Python turtle库绘制菱形的3种方式小结
2019/11/23 Python
python实现简单颜色识别程序
2020/02/19 Python
基于django和dropzone.js实现上传文件
2020/11/24 Python
体育纪念品、亲笔签名的体育收藏品:Steiner Sports
2020/07/31 全球购物
学前教育学生自荐信范文
2013/12/31 职场文书
个人工作主要事迹
2014/05/08 职场文书
支部鉴定材料
2014/06/02 职场文书
会计个人实习计划书
2014/08/15 职场文书
瘦西湖导游词
2015/02/03 职场文书
文体活动总结
2015/02/04 职场文书
幼师中班个人总结
2015/02/12 职场文书
幼儿园辞职信范文
2015/02/27 职场文书
拾金不昧表扬信怎么写
2015/05/04 职场文书
小学生暑假安全公约
2015/07/14 职场文书
MySQL表的增删改查(基础)
2021/04/05 MySQL
Python排序算法之插入排序及其优化方案详解
2021/06/11 Python
一文了解Java动态代理的原理及实现
2022/07/07 Java/Android