Python 简明教程
Python - File Handling
File Handling in Python
Python 中的文件处理涉及与计算机上的文件交互,从中读取数据或向其中写入数据。Python 提供了多个用于创建、打开、读取、写入和关闭文件的内置函数和方法。本教程涵盖了 Python 中文件处理的基础知识,并附有示例。
Opening a File in Python
若要执行任何文件操作,第一步是要打开该文件。Python 的内置 open() 函数用于以各种模式打开文件,例如读取、写入和追加。在 Python 中打开文件的语法为 −
file = open("filename", "mode")
其中, filename 是要打开的文件的名称,而 mode 打开文件所用的模式(例如,用于读取的“r”,用于写入的“w”,用于追加的“a”)。
Example 1
在以下示例中,我们正在以不同的模式打开文件 −
# Opening a file in read mode
file = open("example.txt", "r")
# Opening a file in write mode
file = open("example.txt", "w")
# Opening a file in append mode
file = open("example.txt", "a")
# Opening a file in binary read mode
file = open("example.txt", "rb")
Example 2
在此处,我们正在以二进制写入模式 (“wb”) 打开一个名为 “foo.txt” 的文件,打印它的名称,它是否已关闭,以及它的打开模式,然后关闭该文件 −
# Open a file
fo = open("foo.txt", "wb")
print ("Name of the file: ", fo.name)
print ("Closed or not: ", fo.closed)
print ("Opening mode: ", fo.mode)
fo.close()
它将生成以下 output −
Name of the file: foo.txt
Closed or not: False
Opening mode: wb
Reading a File in Python
在 Python 中读取文件涉及以允许读取的模式打开该文件,然后使用各种方法从该文件中提取数据。Python 提供了多种从文件中读取数据的方法 −
-
read() − 读取整个文件。
-
readline() − 读取每行。
-
readlines − 将所有行读取到一个列表中。
Example: Using read() method
在以下示例中,我们正在使用 read() 方法将整个文件读取到一个字符串中 −
with open("example.txt", "r") as file:
content = file.read()
print(content)
以下是所获得的输出 −
Hello!!!
Welcome to TutorialsPoint!!!
Writing to a File in Python
在 Python 中写入文件涉及以允许写入的模式打开该文件,然后使用各种方法向该文件添加内容。
若要向文件写入数据,请使用 write() 或 writelines() 方法。以写入模式(“w”)打开文件时,该文件的现有内容会被删除。
Closing a File in Python
我们可以使用 close() 方法在 Python 中关闭文件。关闭文件是文件处理中必不可少的一步,以确保文件使用的所有资源都得到正确释放。完成操作后关闭文件很关键,以防止数据丢失并腾出系统资源。
Using "with" Statement for Automatic File Closing
with 语句是 Python 中用于文件操作的最佳做法,因为它可确保在退出代码块时自动关闭文件,即使发生异常。
Handling Exceptions When Closing a File
在执行文件操作时,务必处理潜在异常以确保程序能够优雅地处理错误。
在 Python 中,我们使用 try-finally 块处理关闭文件时的异常。“finally”块可确保无论在 try 块中是否发生错误,文件都会关闭。
try:
file = open("example.txt", "w")
file.write("This is an example with exception handling.")
finally:
file.close()
print ("File closed successfully!!")
执行上面的代码后,我们得到以下输出: -
File closed successfully!!