一篇文章搞懂Python的文件读写

简介: 一篇文章搞懂Python的文件读写


在Python中,文件读写是一项常见的操作。通过文件读写,我们可以保存数据,加载数据,读取文件内容等等。本文将带您了解Python中的文件读写,并帮助您理解其中的一些重要概念。

一、打开文件

在Python中,要打开一个文件,我们需要使用内置的open()函数。open()函数需要两个参数:文件名和打开模式。打开模式决定了我们要如何与文件交互。

以下是几个常见的打开模式:

  • 'r':只读模式。打开一个用于读取的文件。该文件必须存在。
  • 'w':写入模式。打开一个用于写入的文件。如果文件不存在,则会创建一个新文件。如果文件已经存在,则会覆盖该文件的内容。
  • 'a':追加模式。打开一个用于写入的文件。如果文件不存在,则会创建一个新文件。如果文件已经存在,则会在文件的末尾追加内容。
  • 'x':独占创建模式。创建一个新文件用于写入。如果文件已经存在,则会引发异常。
  • 'b':二进制模式。该模式以二进制方式打开文件。
  • 't':文本模式(默认模式)。该模式以文本方式打开文件。

下面是一个简单的例子,演示如何以只读模式打开一个文件:

file = open('example.txt', 'r')

这将打开名为example.txt的文件,并将其保存在名为file的对象中。请注意,为了防止资源泄漏,我们在完成文件操作后需要关闭文件。可以使用close()方法或使用with语句来自动关闭文件。

二、读取文件内容

一旦打开了文件,我们就可以使用read()方法来读取文件的内容。例如:

file = open('example.txt', 'r')  
content = file.read()  
print(content)

这将读取example.txt文件的内容,并将其打印到控制台中。请注意,read()方法将读取文件的全部内容,并将其作为一个字符串返回。如果文件很大,则可能会占用大量内存。在这种情况下,我们可以使用readlines()方法逐行读取文件内容:

file = open('example.txt', 'r')  
lines = file.readlines()  
for line in lines:  
    print(line)

这将逐行读取example.txt文件的内容,并将其打印到控制台中。readlines()方法返回一个包含所有行的列表,每行都是字符串类型。

三、写入文件内容

要写入文件内容,我们可以使用write()方法。例如:

file = open('example.txt', 'w')  
file.write('Hello, world!')  
file.close()

这将创建一个名为example.txt的新文件(如果该文件不存在),并在其中写入字符串"Hello, world!"。请注意,write()方法不会自动添加换行符,因此如果您需要在每行之间添加换行符,则需要在字符串末尾添加换行符('\n')。此外,在完成写入后,我们需要调用close()方法来关闭文件。

四、追加内容到文件末尾

如果您想将内容追加到文件的末尾而不是覆盖整个文件的内容,则可以使用'a'模式打开文件,并使用write()方法将内容写入文件中:

file = open('example.txt', 'a')  
file.write('Hello, again!')  
file.close()

这将向example.txt文件的末尾添加字符串"Hello, again!"。请注意,如果example.txt不存在,则会创建一个新文件。

五、文件路径

在打开文件时,我们可以使用绝对路径或相对路径指定文件的位置。绝对路径是从根目录开始的完整文件路径,而相对路径是从当前工作目录开始的文件路径。

例如,如果我们要打开位于C盘根目录下的example.txt文件,我们可以使用以下代码:

file = open('C:/example.txt', 'r')

如果我们要打开与当前Python脚本同一目录下的example.txt文件,我们可以使用以下代码:

file = open('./example.txt', 'r')

六、错误处理

在进行文件读写操作时,可能会遇到各种错误,例如文件不存在,文件访问权限不足等。为了避免程序崩溃,我们可以使用try-except语句来捕获和处理这些错误。

例如,以下代码演示了如何打开一个不存在的文件,并在出现异常时打印一条错误消息:

try:  
    file = open('nonexistent.txt', 'r')  
except FileNotFoundError:  
    print('File not found')

七、关闭文件

在完成文件操作后,我们应始终关闭文件,以释放系统资源。可以使用close()方法显式关闭文件,或者使用with语句自动关闭文件。

例如,以下代码演示了如何使用close()方法关闭文件:

file = open('example.txt', 'r')  
content = file.read()  
file.close()

或者,我们可以使用with语句自动关闭文件:

with open('example.txt', 'r') as file:  
    content = file.read()

无论使用哪种方法,我们都需要确保在完成文件操作后关闭文件。

八、文件读写的高级功能

除了基本的文件读写操作外,Python还提供了许多高级的文件读写功能。以下是一些常用的高级功能:

  1. 文件指针:使用seek()方法可以移动文件指针到指定位置。这对于读取文件的特定部分或跳过某些内容非常有用。
  2. 文件锁定:在多线程或多进程环境中,可以使用文件锁定来确保对文件的并发访问是安全的。Python的filelock模块提供了文件锁定的功能。
  3. 压缩文件读写:Python提供了许多用于读写压缩文件的库,例如gzip、bz2和zipfile。这些库可以方便地读取和写入压缩文件。
  4. 读取二进制文件:对于读取二进制文件,可以使用read()方法一次读取指定数量的字节,或者使用readline()和readlines()方法逐行或逐行列表读取内容。
  5. 写入二进制文件:与读取二进制文件类似,对于写入二进制文件,可以使用write()方法一次写入指定数量的字节。

总结

Python的文件读写功能非常强大和灵活。通过掌握这些基本概念和高级功能,我们可以轻松地处理文件读写操作,并更好地利用Python的文件处理能力。


相关文章
|
1月前
|
自然语言处理 数据处理 Python
python操作和解析ppt文件 | python小知识
本文将带你从零开始,了解PPT解析的工具、工作原理以及常用的基本操作,并提供具体的代码示例和必要的说明【10月更文挑战第4天】
305 60
|
29天前
|
安全 Linux 数据安全/隐私保护
python知识点100篇系列(15)-加密python源代码为pyd文件
【10月更文挑战第5天】为了保护Python源码不被查看,可将其编译成二进制文件(Windows下为.pyd,Linux下为.so)。以Python3.8为例,通过Cython工具,先写好Python代码并加入`# cython: language_level=3`指令,安装easycython库后,使用`easycython *.py`命令编译源文件,最终生成.pyd文件供直接导入使用。
python知识点100篇系列(15)-加密python源代码为pyd文件
|
11天前
|
开发者 Python
Python中__init__.py文件的作用
`__init__.py`文件在Python包管理中扮演着重要角色,通过标识目录为包、初始化包、控制导入行为、支持递归包结构以及定义包的命名空间,`__init__.py`文件为组织和管理Python代码提供了强大支持。理解并正确使用 `__init__.py`文件,可以帮助开发者更好地组织代码,提高代码的可维护性和可读性。
15 2
|
1月前
|
Linux 区块链 Python
Python实用记录(十三):python脚本打包exe文件并运行
这篇文章介绍了如何使用PyInstaller将Python脚本打包成可执行文件(exe),并提供了详细的步骤和注意事项。
51 1
Python实用记录(十三):python脚本打包exe文件并运行
|
24天前
|
Python
python读写操作excel日志
主要是读写操作,创建表格
50 2
|
27天前
|
Java Python
> python知识点100篇系列(19)-使用python下载文件的几种方式
【10月更文挑战第7天】本文介绍了使用Python下载文件的五种方法,包括使用requests、wget、线程池、urllib3和asyncio模块。每种方法适用于不同的场景,如单文件下载、多文件并发下载等,提供了丰富的选择。
|
28天前
|
数据安全/隐私保护 流计算 开发者
python知识点100篇系列(18)-解析m3u8文件的下载视频
【10月更文挑战第6天】m3u8是苹果公司推出的一种视频播放标准,采用UTF-8编码,主要用于记录视频的网络地址。HLS(Http Live Streaming)是苹果公司提出的一种基于HTTP的流媒体传输协议,通过m3u8索引文件按序访问ts文件,实现音视频播放。本文介绍了如何通过浏览器找到m3u8文件,解析m3u8文件获取ts文件地址,下载ts文件并解密(如有必要),最后使用ffmpeg合并ts文件为mp4文件。
|
1月前
|
JSON 数据格式 Python
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
这篇文章介绍了一个Python脚本,用于统计TXT或JSON文件中特定单词的出现次数。它包含两个函数,分别处理文本和JSON文件,并通过命令行参数接收文件路径、目标单词和文件格式。文章还提供了代码逻辑的解释和示例用法。
41 0
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
|
1月前
|
Python
Python对PDF文件页面的旋转和切割
Python对PDF文件页面的旋转和切割
|
1月前
|
计算机视觉 Python
Python操作PDF文件
Python操作PDF文件