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同时兼容python2和python3的8个技巧分享
Jul 11 Python
总结Python编程中函数的使用要点
Mar 20 Python
详解python中xlrd包的安装与处理Excel表格
Dec 16 Python
Python编程pygame模块实现移动的小车示例代码
Jan 03 Python
Python统计单词出现的次数
Apr 04 Python
python提取具有某种特定字符串的行数据方法
Dec 11 Python
python中for循环把字符串或者字典添加到列表的方法
Jul 20 Python
numpy按列连接两个维数不同的数组方式
Dec 06 Python
Python实现计算长方形面积(带参数函数demo)
Jan 18 Python
Python安装依赖(包)模块方法详解
Feb 14 Python
解决Python在导入文件时的FileNotFoundError问题
Apr 10 Python
python如何写出表白程序
Jun 01 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
laravel5.4利用163邮箱发送邮件的步骤详解
2017/09/22 PHP
基于jsTree的无限级树JSON数据的转换代码
2010/07/27 Javascript
jQuery中(function(){})()执行顺序的理解
2013/03/05 Javascript
Extjs NumberField后面加单位实现思路
2013/07/30 Javascript
js禁止页面复制功能禁用页面右键菜单示例代码
2013/08/29 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
2014/01/14 Javascript
node.js中使用node-schedule实现定时任务实例
2014/06/03 Javascript
判断window.onload是否多次使用的方法
2014/09/21 Javascript
完美的js图片轮换效果
2017/02/05 Javascript
微信小程序 常用工具类详解及实例
2017/02/15 Javascript
bootstrap table表格客户端分页实例
2017/08/07 Javascript
详解ES6中的代理模式——Proxy
2018/01/08 Javascript
Vue.directive 自定义指令的问题小结
2018/03/04 Javascript
判断iOS、Android以及PC端的示例代码
2018/11/15 Javascript
Vue动态面包屑功能的实现方法
2019/07/01 Javascript
浅谈Layui的eleTree树式选择器使用方法
2019/09/25 Javascript
详解一些适用于Node.js的命名约定
2019/12/08 Javascript
[02:40]2014DOTA2 国际邀请赛中国区预选赛 四大豪门抵达华西村
2014/05/23 DOTA
[03:48]2014DOTA2 TI专访71DK夺冠不靠小组赛高排名
2014/07/11 DOTA
Python复制文件操作实例详解
2015/11/10 Python
使用Python判断质数(素数)的简单方法讲解
2016/05/05 Python
Python中 Lambda表达式全面解析
2016/11/28 Python
Python实现Mysql数据库连接池实例详解
2017/04/11 Python
Python管理Windows服务小脚本
2018/03/12 Python
python中使用psutil查看内存占用的情况
2018/06/11 Python
Python2 Selenium元素定位的实现(8种)
2019/02/25 Python
pyqt 多窗口之间的相互调用方法
2019/06/19 Python
canvas画布实现手写签名效果的示例代码
2019/04/23 HTML / CSS
英国最大的天然和有机产品在线零售商之一:Big Green Smile
2020/05/06 全球购物
幼师岗位求职简历的自荐信格式
2013/09/21 职场文书
大学生毕业求职自荐书范文
2014/02/04 职场文书
创建精神文明单位实施方案
2014/03/08 职场文书
公务员政审材料
2014/12/23 职场文书
python神经网络编程之手写数字识别
2021/05/08 Python
Java SSH 秘钥连接mysql数据库的方法
2021/06/28 Java/Android
mysql配置SSL证书登录的实现
2021/09/04 MySQL