从文件读取和写入文件是任何编程语言的常见需求。任何文件在读写之前都需要打开。大多数编程语言都使用open()方法来打开文件,以便使用文件对象(file object)读写。可以使用不同类型的文件访问模式作为open()方法的参数,以说明打开文件的目的。这个参数是可选的。close()方法用于在完成文件操作后释放文件对象占用的资源。Python编程可以处理两种类型的文件。它们是文本文件和二进制文件。本教程描述了如何在Python编程中读写文本文件。
文件访问模式:
前面已经提到,open()方法中可以使用不同类型的文件访问模式,本部分将对此进行描述。常用的模式如下所述。
模式 | 用途 |
t | 表示一个文本文件,是默认文件类型。 |
b | 表示一个二进制文件。 |
r | 打开文件进行读取,这是打开任何文件的默认模式。 |
w | 打开文件进行写入。 |
x | 如果不存在,它将打开文件进行写入。 |
a | 如果文件存在,它将打开文件并在文件末尾添加内容;否则,请创建文件并在文件开头添加内容。 |
r+ | 打开文件进行读写,并将光标置于文件的开头。如果文件不存在,则会引发错误。 |
w+ | 打开文件进行读写,如果文件已经存在,则覆盖数据。 |
a+ | 打开文件以进行读写,并将光标置于现有文件的文件末尾。如果文件不存在,它将创建文件。 |
方法:
Python中存在许多读取或写入文件的方法。本文详述最常用的方法。
open():
这个方法包含两个参数。第一个参数是强制性的,用于获取文件名进行读取或写入。第二个参数是可选的,用于设置文件访问模式。默认的文件访问模式是“rt”。该方法的返回类型是一个文件对象,用于读取和写入文件。
语法:
FileObject = open(“Filename”,”FileMode”)
close():
此方法用于关闭文件并使它可用于其他目的。调用此方法后,文件处理对象将不可用。
read():
此方法用于使用文件对象从文件读取特定数量的字节。
readline():
此方法用于使用文件对象从文件读取特定行。
readlines():
此方法用于读取使用文件对象用逗号(,)分隔的文件的所有行。
write():
此方法用于使用文件对象将内容写入文件。
读取文本文件:
创建一个名为“ linuxmi.txt”的文本文件,其中包含以下内容,以在本文的下一部分中使用。
Linux迷
www.linuxmi.com
linuxmi.com
linuxmi
m.linuxmi.com
示例1:使用read()、readline()和readlines()读取文件
使用以下Python脚本创建一个名为linuxmi1.py的文件。它将使用read()根据字节大小读取文件,使用readline()从文件中读取固定数量的字符,并使用readlines()读取数组中文件的所有行。
- # 打开文件进行读取
- FileHandler = open("linuxmi.txt","r")
- # 根据大小读取文件内容
- print('输出来自 read() 方法\n',FileHandler.read(2048))
- # 关闭文件
- FileHandler.close()
- # 打开文件进行读写
- FileHandler = open("linuxmi.txt","r+")
- # 读取第三行的文件内容
- print('输出来自 readline() 方法\n',FileHandler.readline(5))
- # 关闭文件
- FileHandler.close()
- # 打开文件进行读取和附加
- FileHandler = open("linuxmi.txt","r")
- # 打开文件进行读取和附加
- print('输出来自 readlines() 方法\n',FileHandler.readlines())
- # 关闭文件
- FileHandler.close()
输出:
运行脚本后,将显示以下输出。
示例2:使用循环逐行读取文件
使用以下脚本创建一个名为linuxmi2.py的文件。它将使用for循环从文件对象读(fileObject)取并打印文件的每一行。
- # 打开文件进行读取
- fileObject = open("linuxmi.txt", "r")
- # 逐行读取文件并在终端中打印
- for line in fileObject:
- print(line)
输出:
运行脚本后,将显示以下输出。
示例3:通过使用with语句来读取文件
使用以下脚本创建一个名为linuxmi3.py的文件。它将在不使用任何文件对象的情况下通过语句读取文件。
- # 使用with语句读取文件
- with open("linuxmi.txt") as fhandler:
- print(fhandler.readlines())
输出:
运行脚本后,将显示以下输出。
编写文本文件:
通过定义文件对象或将其与语句一起使用,可以将内容写入文件中。
示例4:使用文件对象写入文件(file object)
使用以下脚本创建一个名为linuxmi.com.py的文件。它将打开一个用于写入的文本文件,并使用write()方法写入三行。
- # 打开文件进行写入
- fileObject = open("www.linuxmi.com.txt", "w")
- # 添加一些文本
- fileObject.write("Linux迷欢迎您\n")
- fileObject.write("我们的网址是www.linuxmi.com\n")
- fileObject.write("手机站m.linuxmi.com\n")
- # 关闭文件
- fileObject.close()
输出:
运行脚本,并检查是否使用内容创建了文件。运行脚本并运行“ cat”命令后,将显示以下输出。
示例5:使用with语句写入文件
无需定义文件对象就可以将内容写入文件。使用以下脚本创建一个名为m.linuxmi.com.py的文件。通过使用with语句,它将在文件中写入两行。
- # 使用with语句打开文件进行写入
- with open("m.linuxmi.com.txt",'w') as fileObj:
- fileObj.write("Linux迷为您提供最新的开源资讯\n")
- fileObj.write("linuxmi.com提供最新最前沿的开源技术\n")
输出:
运行脚本和“ cat”命令读取文件后,将显示以下输出。
总结
本教程通过使用非常简单的示例描述了从文件中读取内容并将内容写入文件的常用方法。Python新手将能够知道读取或写入文件所需函数的用法。你学会了吗?