Python 文件的操作

本文介绍了Python中如何进行文件的打开、关闭以及读写操作。文件是数据的抽象,分为文本文件和二进制文件。通过内置函数以指定模式打开文件,使用后需关闭以释放资源。内容包括打开文件的相对和绝对路径,文件的读写操作实例。

 目录

1、文件的打开

2、文件的关闭

3、文件的读写操作


       Python 使用中,我们经常需要对文件进行读写等操作,如何才能实现呢?

        进入正题之前,让我们先了解一下何为文件。

        文件是数据的抽象和集合,是存储在存储器上的数据序列,既是数据存储的一种形式,也是存储区域的某个命名位置,便于后续访问。文件通常以二进制形式存储,有两种展现形态:文本文件(由单一特定编码组成,如 UTF-8 编码)和二进制文件(由比特 0、1 组成,没有统一编码)。常见的 .txt,.py 等扩展名文件均为文本文件,.png,.avi 等均为二进制文件。

        例如:对于同一段文字“一起向未来”,其展现形态分别为:

#文本文件输出
一起向未来

#二进制文件输出
b'\xe4\xb8\x80\xe8\xb5\xb7\xe5\x90\x91\xe6\x9c\xaa\xe6\x9d\xa5'

        当我们要读取或者写入文件时,我们需要打开文件;在操作完毕后,我们需要关闭文件,以便释放和文件操作相关的系统资源。因此,文件的操作主要包括以下:

  • 打开文件
  • 读取或者写入
  • 关闭文件

 

1、文件的打开

        Python 通过内置函数 open() 打开目标文件(主名+扩展名),并返回一个文件对象,也叫句柄(handle)。

         其中文件的路径也就是存放文件的位置有相对路径和绝对路径之分。相对路径表示从当前目录( ./ )开始定位,如:./Documents/file.txt,若当前程序与目标文件在同一目录,则直接输入文件名。绝对路径则表示从根目录( / )开始定位,如:D:/Documents/file.txt。

        注意:windows 系统下文件位置默认以反斜杠( \ )表示,但该符号在 python 中为转义符,需以双反斜杠( \\ )或直接以斜杠( / )表示。

 

        常用文件打开模式

打开模式含义描述
'r'read只读,默认。如果文件不存在,返回FileNotFoundError
'w'write只写。文件不存在则创建,存在则覆盖既有内容
'x'创建写。文件不存在则创建,存在则返回FileExistsError
'a'append追加。文件不存在则创建,存在则在文件末尾追加指定内容
't'text文本文件,默认
'b'binary二进制文件
'+'plus与r/w/x/a一同使用,在原有功能基础上增加写读功能

 

2、文件的关闭

        <f>.close()

        一般情况下程序正常退出时,python 解释器也会自动关闭目标文件。

 

3、文件的读写操作

        以当前目录下文件 f.txt 为例,内容“一起向未来”“Together for a Shared Future”两行。

操作方法描述
<f>.read(size=-1)

读入 size 前部分内容,() 为全部。

>>> open('f.txt').read(2)

'一起'

<f>.readline(size=-1)

读入第一行 size 前部分内容,包含回车符,() 为整行。

>>> open('f.txt').readline()

'一起向未来\n'

<f>.readlines(hint=-1)

读入前 hint 行,以每行为元素,形成列表,() 为读入所有行。

>>>open('f.txt').readlines()

['一起向未来\n','Together for a Shared Future\n']

<f>.write(s)

向文件写入字符串或字节流

>>>open('f.txt','a').write('冬季奥运会\n')

6

<f>.writelines(lines)

将一个元素全为字符串的列表行写入文件,当前行自行首起覆盖相应字符。

>>> open('f.txt','a').writelines(['2022\n','中国\n','北京'])

>>> open('f.txt').readlines()

['一起向未来\n', 'Together for a Shared Future\n', '冬季奥运会\n', '2022\n', '中国\n', '北京']

<f>.seek(offset)改变当前文件操作指针的位置,offset 为 0-开头,1-当前位置,2-结尾

 

        采用遍历的方法,综合上述部分操作:

f=open('f.txt','a+')
f.write('冬季奥运会\n')
f.writelines(['2022\n','中国\n','北京'])
f.seek(0)
for line in f:
    print(line)
f.close()

        输出结果:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香饽々

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值