Python学习笔记之文件的读写操作实例分析


Posted in Python onAugust 07, 2019

本文实例讲述了Python文件的读写操作。分享给大家供大家参考,具体如下:

读写文件

读取文件

f = open('my_path/my_file.txt', 'r') # open方法会返回文件对象
file_data = f.read() # 通过read方法获取数据
f.close() # 关闭该文件
  • 首先使用内置函数 open 打开文件。需要文件路径字符串。open 函数会返回文件对象,它是一个 Python 对象,Python 通过该对象与文件本身交互。在此示例中,我们将此对象赋值给变量 f。
  • 你可以在 open 函数中指定可选参数。参数之一是打开文件时采用的模式。在此示例中,我们使用 r,即只读模式。这实际上是模式参数的默认值。
  • 使用 read 访问文件对象的内容。该 read 方法会接受文件中包含的文本并放入字符串中。在此示例中,我们将该方法返回的字符串赋值给变量 file_data
  • 当我们处理完文件后,使用 close 方法释放该文件占用的系统资源。

写入文件

f = open('my_path/my_file.txt', 'w')
f.write("Hello there!")
f.close()
  • 以写入 (‘w') 模式打开文件。如果文件不存在,Python 将为你创建一个文件。如果以写入模式打开现有文件,该文件中之前包含的所有内容将被删除。如果你打算向现有文件添加内容,但是不删除其中的内容,可以使用附加 (‘a') 模式,而不是写入模式。
  • 使用 write 方法向文件中添加文本。
  • 操作完毕后,关闭文件。

with语法,该语法会在你使用完文件后自动关闭该文件

with open('my_path/my_file.txt', 'r') as f:
file_data = f.read()
  • with 关键字使你能够打开文件,对文件执行操作,并在缩进代码(在此示例中是读取文件)执行之后自动关闭文件。现在,我们不需要调用 f.close() 了!
  • 只能在此缩进块中访问文件对象 f。

在之前的代码中,f.read() 调用没有传入参数。它自动变成从当前位置读取文件的所有剩余内容,即整个文件。如果向 .read() 传入整型参数,它将读取长度是这么多字符的内容,输出所有内容,并使 ‘window' 保持在该位置以准备继续读取。

with open(camelot.txt) as song:
  print(song.read(2))
  print(song.read(8))
  print(song.read())

输出:

We
're the
knights of the round table
We dance whenever we're able

读取文件下一行的方法: f.readlines()

Python 将使用语法 for line in file 循环访问文件中的各行内容。 我可以使用该语法创建列表中的行列表。因为每行依然包含换行符,因此我使用 .strip() 删掉换行符。

camelot_lines = []
with open("camelot.txt") as f:
  for line in f:
    camelot_lines.append(line.strip())
print(camelot_lines) # ["We're the knights of the round table", "We dance whenever we're able"]

相关练习:你将创建一个演员名单,列出参演电视剧《巨蟒剧团之飞翔的马戏团》的演员。写一个叫做 create_cast_list 的函数,该函数会接受文件名作为输入,并返回演员姓名列表。 它将运行文件 flying_circus_cast.txt。文件的每行包含演员姓名、逗号,以及关于节目角色的一些(凌乱)信息。你只需提取姓名,并添加到列表中。你可以使用 .split() 方法处理每行。

解决方案

def create_cast_list(filename):
  cast_list = []
  #use with to open the file filename
  #use the for loop syntax to process each line
  #and add the actor name to cast_list
  with open(filename) as f:
  # use the for loop syntax to process each line    
  # and add the actor name to cast_list
    for line in f:
      line_data = line.split(',')
      cast_list.append(line_data[0])
  return cast_list
cast_list = create_cast_list('./txts/flying_circus_cast.txt')
for actor in cast_list:
  print(actor)

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

Python 相关文章推荐
Python网络爬虫出现乱码问题的解决方法
Jan 05 Python
tensorflow TFRecords文件的生成和读取的方法
Feb 06 Python
PyQt5打开文件对话框QFileDialog实例代码
Feb 07 Python
Python开发的十个小贴士和技巧及长常犯错误
Sep 27 Python
Python中垃圾回收和del语句详解
Nov 15 Python
Python的条件表达式和lambda表达式实例
Jan 31 Python
python2.7使用plotly绘制本地散点图和折线图
Apr 02 Python
Python浮点数四舍五入问题的分析与解决方法
Nov 19 Python
python 使用递归回溯完美解决八皇后的问题
Feb 26 Python
Django User 模块之 AbstractUser 扩展详解
Mar 11 Python
Python如何避免文件同名产生覆盖
Jun 09 Python
在vscode中启动conda虚拟环境的思路详解
Dec 25 Python
详解python中__name__的意义以及作用
Aug 07 #Python
Pandas0.25来了千万别错过这10大好用的新功能
Aug 07 #Python
Python编程学习之如何判断3个数的大小
Aug 07 #Python
Python使用import导入本地脚本及导入模块的技巧总结
Aug 07 #Python
python可视化篇之流式数据监控的实现
Aug 07 #Python
Python+AutoIt实现界面工具开发过程详解
Aug 07 #Python
Django中的用户身份验证示例详解
Aug 07 #Python
You might like
无线电广播与收音机发展的历史回眸
2021/03/02 无线电
深入解析yii权限分级式访问控制的实现(非RBAC法)
2013/06/13 PHP
PHP实现上一篇下一篇的方法实例总结
2016/09/22 PHP
Codeigniter里的无刷新上传的实现代码
2019/04/14 PHP
javascript中的window.location.search方法简介
2013/09/02 Javascript
自己写的Javascript计算时间差函数
2013/10/28 Javascript
JavaScript中的字符串操作详解
2013/11/12 Javascript
jquery如何实现锚点链接之间的平滑滚动
2013/12/02 Javascript
js文本框走动跑马灯效果代码分享
2015/08/25 Javascript
BootStrap3中模态对话框的使用
2017/01/06 Javascript
video.js使用改变ui过程
2017/03/05 Javascript
微信小程序开发之麦克风动画 帧动画 放大 淡出
2017/04/18 Javascript
Vue.js列表渲染绑定jQuery插件的正确姿势
2017/06/29 jQuery
Bootstrap模态对话框中显示动态内容的方法
2018/08/10 Javascript
Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
2019/05/13 Javascript
vue的滚动条插件实现代码
2019/09/07 Javascript
[00:44]TI7不朽珍藏III——军团指挥官不朽展示
2017/07/15 DOTA
[50:21]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/19 DOTA
详解Python nose单元测试框架的安装与使用
2017/12/20 Python
Python3.5内置模块之random模块用法实例分析
2019/04/26 Python
python操作excel让工作自动化
2019/08/09 Python
安装python3.7编译器后如何正确安装opnecv的方法详解
2020/06/16 Python
解决Keras中CNN输入维度报错问题
2020/06/29 Python
Python txt文件如何转换成字典
2020/11/03 Python
Python远程linux执行命令实现
2020/11/11 Python
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
2012/12/13 HTML / CSS
员工薪酬福利制度
2014/01/17 职场文书
食品安全检查制度
2014/02/03 职场文书
高中军训感言400字
2014/02/24 职场文书
《盘古开天地》教学反思
2014/02/28 职场文书
村委会换届选举方案
2014/05/03 职场文书
青年文明号口号
2014/06/17 职场文书
女生节标语
2014/06/26 职场文书
五四青年节比赛演讲稿
2015/03/18 职场文书
2015中秋节晚会开场白
2015/07/30 职场文书
浅谈Web Storage API的使用
2021/06/23 Javascript