已编辑 3 几周前 通过 ExtremeHow 编辑团队
Python文件处理输入输出操作视窗苹果电脑Linux编程基础中级数据管理脚本
翻译更新 3 几周前
学习如何在Python中读写文件对于任何程序员来说都是一项基本技能。文件包含的数据可以由程序读取或修改并保存以供以后使用。在Python中,文件处理简单直观。本指南将介绍如何使用内置的open函数进行文件处理的基本和高级概念。我们将探索不同的文件模式、错误处理和各种常见的使用情景。
在深入了解Python中的文件操作之前,重要的是要理解读取和写入文件的含义。
要在Python中读写文件,您必须首先打开它。Python有一个内置的open
函数。这个函数打开一个文件,返回一个文件对象。open
函数的语法是:
file_object = open(filename, mode)
这里,filename
是要打开的文件的名称,mode
表示打开文件的目的。
文件模式决定了文件打开后将如何使用。以下是一些常见的文件模式:
'r'
:读取模式是默认模式。它只打开文件进行读取。'w'
:写入模式打开文件进行写入。如果文件不存在,则创建一个新文件。如果文件已经存在,则截断(清空)它。'a'
:追加模式打开文件仅进行写入,但不会截断文件。数据会被附加在末尾。'b'
:二进制模式用于文件是二进制格式时,这对图像等文件很有用。't'
:文本模式用于文本文件,是默认模式。'x'
:独占创建模式。这允许您创建一个新文件,如果文件已存在则会失败。'+'
:这种模式允许您同时读取和写入文件。一旦文件以适当的模式打开,您可以使用read()
、readline()
和readlines()
等方法读取其内容。
read()
方法read()
方法读取文件的全部内容并将其作为字符串返回。
# 在读取模式下打开文件 file_object = open("example.txt", "r") # 读取所有内容 content = file_object.read() # 打印内容 print(content) # 关闭文件 file_object.close()
readline()
方法readline()
方法读取文件的一行并将其作为字符串返回。
# 打开文件 file_object = open("example.txt", "r") # 读取第一行 first_line = file_object.readline() # 打印第一行 print(first_line) # 关闭文件 file_object.close()
readlines()
方法此方法读取文件中的所有行并将其作为字符串列表返回。每个字符串代表文件中的一行。
# 打开文件 file_object = open("example.txt", "r") # 读取所有行 lines = file_object.readlines() # 打印所有行 for line in lines: print(line) # 关闭文件 file_object.close()
要向文件写入数据,您必须以写入模式('w'、'a'或'x')之一打开它。 write()
和writelines()
方法用于向文件写入数据。
write()
方法write()
方法将单个字符串写入文件。
# 以写入模式打开文件 file_object = open("example.txt", "w") # 向文件写入数据 file_object.write("这是一段示例文本。") # 关闭文件 file_object.close()
writelines()
方法writelines()
方法将字符串列表写入文件。
# 以追加模式打开文件 file_object = open("example.txt", "a") # 字符串列表 lines = ["第一行\n", "第二行\n", "第三行\n"] # 将行写入文件 file_object.writelines(lines) # 关闭文件 file_object.close()
使用完文件后,重要的是要关闭它。close()
方法用于这个目的。它释放文件所使用的资源。
# 正确关闭文件 file_object.close()
您还可以使用with
语句打开文件。这种方式确保即使发生异常,也会自动关闭文件。以下是一个示例:
with open("example.txt", "r") as file_object: content = file_object.read() print(content) # 不需要显式关闭文件
在处理文件时,可能会发生错误。优雅地处理这些错误可以提高程序的健壮性。Python提供了一种机制来使用try
和except
语句处理此类异常。
try: with open("example.txt", "r") as file_object: content = file_object.read() print(content) except FileNotFoundError: print("文件不存在。") except IOError: print("访问文件时发生错误。")
在此示例中,如果文件不存在或无法访问,则会显示一条消息,程序继续执行而不会崩溃。
使用Python,您可以处理包括文本文件、二进制文件等在内的不同类型的文件。根据文件类型,方法可能会略有不同:
二进制文件以二进制格式包含数据。要处理二进制文件,请通过在文件名后添加“b”以二进制模式打开它们(例如,'rb'
表示二进制读取模式)。
with open("image.jpg", "rb") as file_object: content = file_object.read() # 处理二进制内容
CSV(逗号分隔值)文件用于存储表格数据。Python提供csv
模块来处理CSV文件。
import csv # 读取CSV with open("data.csv", "r") as file_object: csv_reader = csv.reader(file_object) for row in csv_reader: print(row) # 写入CSV with open("output.csv", "w", newline='') as file_object: csv_writer = csv.writer(file_object) csv_writer.writerow(["Header1", "Header2"]) csv_writer.writerow(["Value1", "Value2"])
JSON(JavaScript对象表示法)是一种用于存储和交换数据的流行格式。Python的json
模块使JSON文件处理变得简单。
import json # 读取JSON with open("data.json", "r") as file_object: data = json.load(file_object) print(data) # 写入JSON with open("output.json", "w") as file_object: json.dump({"key": "value"}, file_object)
seek()
方法改变文件对象的位置,使您可以转到文件中的不同位置。
# 使用seek更改文件位置 with open("example.txt", "r") as file_object: file_object.seek(5) content = file_object.read() print(content)
您还可以使用文件对象作为迭代器来遍历文件中的每一行。
with open("example.txt", "r") as file_object: for line in file_object: print(line)
处理Python中的文件是一项基本技能,使程序员能够有效地存储、检索和操作数据。本指南涵盖了文件读取和写入的基础知识,探索了各种文件模式,并展示了如何处理异常。此外,它提供了处理各种文件类型(如文本、二进制、CSV和JSON文件)的方法。使用这些工具,您可以有效地管理Python程序中的文件,确保数据被正确、安全地处理。
如果你发现文章内容有误, 您可以