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标准库内置函数complex介绍
Nov 25 Python
Python实现注册登录系统
Aug 08 Python
python 通过 socket 发送文件的实例代码
Aug 14 Python
python自动化测试之DDT数据驱动的实现代码
Jul 23 Python
wxpython实现按钮切换界面的方法
Nov 19 Python
python 消除 futureWarning问题的解决
Dec 25 Python
Python实现分数序列求和
Feb 25 Python
Python获取指定网段正在使用的IP
Dec 14 Python
5行Python代码实现一键批量扣图
Jun 29 Python
Python编程编写完善的命令行工具
Sep 15 Python
Python OpenCV之常用滤波器使用详解
Apr 07 Python
python+pyhyper实现识别图片中的车牌号思路详解
Dec 24 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
星际争霸中的对战模式介绍
2020/03/04 星际争霸
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
2012/06/07 PHP
浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题
2013/08/06 PHP
PHP封装的HttpClient类用法实例
2015/06/17 PHP
彻底搞懂PHP 变量结构体
2017/10/11 PHP
Thinkphp 框架基础之入口文件功能、定义与用法分析
2020/04/27 PHP
很多人都是用下面的js刷新站IP和PV
2008/09/05 Javascript
为Extjs加加速(javascript加速)
2010/08/19 Javascript
jquery easyui 结合jsp简单展现table数据示例
2014/04/18 Javascript
js如何判断用户是否是用微信浏览器
2014/06/05 Javascript
js常用数组操作方法简明总结
2014/06/20 Javascript
使用jQuery实现更改默认alert框体
2015/04/13 Javascript
jquery实现的代替传统checkbox样式插件
2015/06/19 Javascript
详解javascript数组去重问题
2015/11/06 Javascript
jQuery学习笔记之回调函数
2016/08/15 Javascript
angularJS 发起$http.post和$http.get请求的实现方法
2017/05/18 Javascript
Angular 4依赖注入学习教程之简介(一)
2017/06/04 Javascript
VueJS 集成 Medium Editor的示例代码 (自定义编辑器按钮)
2017/08/24 Javascript
JavaScript数据结构与算法之队列原理与用法实例详解
2017/11/22 Javascript
[05:16]《大圣!大圣》——DOTA2新英雄齐天大圣配音李世宏老师专访
2016/12/13 DOTA
Python 冒泡,选择,插入排序使用实例
2015/02/05 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
python读取视频流提取视频帧的两种方法
2020/10/22 Python
python实现守护进程、守护线程、守护非守护并行
2018/05/05 Python
Python实现识别图片内容的方法分析
2018/07/11 Python
python文件选择对话框的操作方法
2019/06/27 Python
python函数局部变量、全局变量、递归知识点总结
2019/11/15 Python
pytorch中的transforms模块实例详解
2019/12/31 Python
PyTorch中的padding(边缘填充)操作方式
2020/01/03 Python
公司年会演讲稿范文
2014/01/11 职场文书
环保建议书600字
2014/05/14 职场文书
民间个人借款协议书
2014/09/30 职场文书
职工培训工作总结
2015/08/10 职场文书
公安忠诚教育心得体会
2016/01/23 职场文书
2016五一手机促销广告语
2016/01/28 职场文书
在项目中使用redis做缓存的一些思路
2021/09/14 Redis