Python学习笔记(七)文件

本文详细介绍了Python中文件的打开、关闭、读写模式以及编码问题。通过实例展示了如何使用`open()`函数以不同模式打开文件,如何处理编码问题,以及文件指针的使用。此外,还探讨了读取(read(), readline(), readlines())和写入(write(), writelines())文件的方法。" 11678033,1356134,华为2014机考高级题:地铁换乘最短路径实现,"['算法', '图论', 'BFS广度优先搜索', '数据结构', '华为']
摘要由CSDN通过智能技术生成

“Life is short, You need Python” – Bruce Eckel

Environment

  • OS: macOS Mojave
  • Python version: 3.7
  • IDE: Jupyter Notebook



0. 写在前面

本文记录一些 Python 打开关闭文件的基本方式和读取写入的方法,主要以文本文件为例。而在实际操作中,更多的会使用第三方库(如Pandas 中 Series 和 DataFrame 对象的方法;open-cv 或 PIL 的函数)对结构化数据或图片数据进行读取或保存。

1. 文件的打开和关闭

要对文件内容进行操作,首先需要使用 open 函数打开文件,得到文件指针;要对写入的内容进行保存,需要关闭文件,调用文件指针的 close 方法。

1.1 打开文件

在 .py 文件同目录下放一个 zen.txt 文件,内容如下
在这里插入图片描述

  • open(file='文件路径', mode='打开模式', encoding='操作文件的字符编码') 返回文件对象 f 。当文件与当前的 Python 文件在同一目录,则可以直接对 file 传入文件名。
  • f.close() 调用方法关闭文件

# 非绝对路径时,会在 Python 同目录下寻找该文件
f = open('zen.txt', 'r', encoding='utf-8')

f.read()
# 'Beautiful is better than ugly.\nExplicit is better than implicit.\nSimple is better than complex.\nComplex is better than complicated.\nFlat is better than nested.\nSparse is better than dense.'

f.close()

1.2 关闭文件

如上所述,在对文件操作完成后,需要调用 f.close() 关闭文件,这样才会将修改写入硬盘。注意,由于 Python 有垃圾回收机制,在文件指针对象的引用数为零时将其销毁,所以不会造成内存泄露。

Alternatively,更常用 with 加缩进的结构,可以不用调用 close ,在 with 结构运行结束之后文件将自动关闭

with open('文件路径', '打开模式', encoding='操作文件的字符编码') as f:
	对文件进行的操作

with open('zen.txt', 'r', encoding='utf-8') as f:
    f.read()
# 'Beautiful is better than ugly.\nExplicit is better than implicit.\nSimple is better than complex.\nComplex is better than complicated.\nFlat is better than nested.\nSparse is better than dense.'

1.2 打开的模式

open 函数中的 mode 参数传入的值将确定读写模式和文件类型

<
读写模式 打开模式
‘r’ 只读 默认。若文件不存在则报错 ;文件指针在开头
‘r+’ 读写 若文件不存在则报错;文件指针在开头,写入多少覆盖多少原有的内容
‘w’ 只写 创建新文件,若存在同名文件则以空白文件覆盖之(危)
‘w+’ 读写 (同上)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值