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实现登录人人网并抓取新鲜事的方法
May 11 Python
Python 探针的实现原理
Apr 23 Python
Python Nose框架编写测试用例方法
Oct 26 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
Jan 29 Python
基于python指定包的安装路径方法
Oct 27 Python
python将txt文件读取为字典的示例
Dec 22 Python
python粘包问题及socket套接字编程详解
Jun 29 Python
django项目用higcharts统计最近七天文章点击量
Aug 17 Python
pytorch 获取层权重,对特定层注入hook, 提取中间层输出的方法
Aug 17 Python
python 一维二维插值实例
Apr 22 Python
python 贪心算法的实现
Sep 18 Python
selenium判断元素是否存在的两种方法小结
Dec 07 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
php获取指定日期之间的各个周和月的起止时间
2014/11/24 PHP
PHP获取当前日期和时间及格式化方法参数
2015/05/11 PHP
php 使用fopen函数创建、打开文件详解及实例代码
2016/09/24 PHP
Yii 框架使用Forms操作详解
2020/05/18 PHP
JS控件ASP.NET的treeview控件全选或者取消(示例代码)
2013/12/16 Javascript
javascript中call,apply,bind的用法对比分析
2015/02/12 Javascript
javascript搜索框效果实现方法
2015/05/14 Javascript
AngularJS初始化静态模板详解
2016/01/14 Javascript
拥有一个属于自己的javascript表单验证插件
2016/03/24 Javascript
BootStrap fileinput.js文件上传组件实例代码
2017/02/20 Javascript
Angular指令之restict匹配模式的详解
2017/07/27 Javascript
JS继承与闭包及JS实现继承的三种方式
2017/10/15 Javascript
vue 不使用select实现下拉框功能(推荐)
2018/05/17 Javascript
JavaScript设计模式之享元模式实例详解
2019/01/17 Javascript
jQuery ajax仿Google自动提示SearchSuggess功能示例
2019/03/28 jQuery
layui问题之自动滚动二级iframe页面到指定位置的方法
2019/09/18 Javascript
理解JavaScript中的对象
2020/08/25 Javascript
python中使用smtplib和email模块发送邮件实例
2014/04/22 Python
python使用cPickle模块序列化实例
2014/09/25 Python
Python cookbook(数据结构与算法)保存最后N个元素的方法
2018/02/13 Python
Python中的二维数组实例(list与numpy.array)
2018/04/13 Python
python操作xlsx文件的包openpyxl实例
2018/05/03 Python
Python sorted函数详解(高级篇)
2018/09/18 Python
python实现多进程代码示例
2018/10/31 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
2019/04/26 Python
浅谈Django2.0 加xadmin踩的坑
2019/11/15 Python
Python yield生成器和return对比代码实例
2020/04/20 Python
python3中确保枚举值代码分析
2020/12/02 Python
详解html5 canvas常用api总结(二)--绘图API
2016/12/14 HTML / CSS
《鸿门宴》教学反思
2014/04/22 职场文书
建筑工地质量标语
2014/06/12 职场文书
幼儿园感恩节活动方案2014
2014/10/11 职场文书
党员教师群众路线思想汇报范文
2014/10/28 职场文书
小学生五一劳动节演讲稿
2015/03/18 职场文书
初中思品教学反思
2016/02/20 职场文书
Nginx 安装SSL证书完成HTTPS部署
2022/04/28 Servers