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用户推荐系统曼哈顿算法实现完整代码
Dec 01 Python
基于python log取对数详解
Jun 08 Python
python 基本数据类型占用内存空间大小的实例
Jun 12 Python
python实现zabbix发送短信脚本
Sep 17 Python
在Python中使用MySQL--PyMySQL的基本使用方法
Nov 19 Python
Python3的unicode编码转换成中文的问题及解决方案
Dec 10 Python
解决pytorch报错:AssertionError: Invalid device id的问题
Jan 10 Python
浅谈Python3实现两个矩形的交并比(IoU)
Jan 18 Python
Python使用正则表达式实现爬虫数据抽取
Aug 17 Python
python+openCV对视频进行截取的实现
Nov 27 Python
python如何在word中存储本地图片
Apr 07 Python
python中使用 unittest.TestCase单元测试的用例详解
Aug 30 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在DOS命令行下却无法链接MySQL的技术笔记
2010/12/29 PHP
php判断数组中是否存在指定键(key)的方法
2015/03/17 PHP
laravel框架与其他框架的详细对比
2019/10/23 PHP
javascript 限制输入脚本大全
2009/11/03 Javascript
jquery 定位input元素的几种方法小结
2013/07/28 Javascript
JavaScript代码简单实现求杨辉三角给定行的最大值
2013/10/29 Javascript
javascript 处理null及null值示例
2014/06/09 Javascript
jQuery过滤选择器用法分析
2015/02/10 Javascript
JavaScript中常见获取元素的方法汇总
2015/03/04 Javascript
深入分析Javascript跨域问题
2015/04/17 Javascript
牛叉的Jquery——Jquery与DOM对象的互相转换及DOM的三种操作
2015/10/29 Javascript
页面get请求 中文参数方法乱码问题的快速解决方法
2016/05/31 Javascript
微信小程序开发教程-手势解锁实例
2017/01/06 Javascript
原生JS实现多个小球碰撞反弹效果示例
2018/01/31 Javascript
nodejs express配置自签名https服务器的方法
2018/05/22 NodeJs
vue源码学习之Object.defineProperty 对数组监听
2018/05/30 Javascript
详解html-webpack-plugin插件(用法总结)
2018/09/12 Javascript
超详细的5个Shell脚本实例分享(值得收藏)
2019/08/15 Javascript
JS实现简单随机3D骰子
2019/10/24 Javascript
Python实现根据IP地址和子网掩码算出网段的方法
2015/07/30 Python
Python中Class类用法实例分析
2015/11/12 Python
利用Python实现颜色色值转换的小工具
2016/10/27 Python
Python实现的网页截图功能【PyQt4与selenium组件】
2018/07/12 Python
Python字典中的键映射多个值的方法(列表或者集合)
2018/10/17 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
2020/05/22 Python
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
2020/06/01 Python
如何利用pycharm进行代码更新比较
2020/11/04 Python
阿迪达斯英国官方网站:adidas英国
2019/08/13 全球购物
上课玩手机检讨书
2014/02/08 职场文书
2014年中秋寄语
2014/08/11 职场文书
领导班子作风建设年个人整改措施
2014/09/29 职场文书
党的群众路线教育实践活动学习笔记范文
2014/11/06 职场文书
毕业设计指导教师评语
2014/12/30 职场文书
整改通知书格式
2015/04/22 职场文书
高三生物教学反思
2016/02/22 职场文书
nginx容器方式反向代理实战
2022/04/18 Servers