Python 3 – 文件方法
在Python编程中,文件操作是必备的技能之一。Python提供了方便且易于使用的方法来读写文件。在本文中,我们将学习Python 3中常用的文件方法。
打开文件
在Python中打开文件的方法是使用 open()
函数。open()
函数需要传入两个参数,第一个参数是文件路径,第二个参数是打开模式。打开模式有以下几种:
'r'
:只读模式,默认值。如果文件不存在,会抛出异常。'w'
:写入模式。如果文件不存在,会创建一个新的文件;如果文件存在,会覆盖原有内容。'a'
:追加模式。如果文件不存在,会创建一个新的文件;如果文件存在,在文件末尾追加新内容。'x'
:独占写入模式。如果文件不存在,会创建一个新的文件;如果文件存在,会抛出异常。
# 打开文件示例
f = open("file.txt", "r")
在打开文件之后,可以调用以下方法来读写文件:
读取文件
read(size=-1)
:从文件中读取size个字符,如果没有指定size,则读取整个文件。readline(size=-1)
:读取文件中的一行,如果没有指定size,则读取整行。readlines()
:返回一个包含文件所有行的列表。tell()
:返回文件指针的当前位置。seek(offset, from)
:将文件指针移动到指定的位置。offset
表示要移动的字节数,from
可以为0表示从文件头部开始读取,为1表示从当前位置开始读取,为2表示从文件末尾开始读取。
# 读取文件示例
f = open("file.txt", "r")
print(f.read()) # 读取整个文件
f.close()
f = open("file.txt", "r")
print(f.readline()) # 读取一行
f.close()
f = open("file.txt", "r")
print(f.readlines()) # 读取所有行并存储在列表中
f.close()
f = open("file.txt", "r")
print(f.tell()) # 获取当前指针位置
f.seek(0, 0) # 将指针移动到文件开头
print(f.tell()) # 获取当前指针位置
f.close()
写入文件
write(string)
:将字符串写入文件。writelines(sequence)
:向文件写入一个字符串序列。sequence 应该是一个返回字符串的可迭代对象,如果没有指定newline
参数,每个字符串都将作为一行写入。
# 写入文件示例
f = open("file.txt", "w")
f.write("Hello World")
f.close()
f = open("file.txt", "a")
f.write("\nThis is a new line")
f.close()
seq = ["Line 1", "Line 2", "Line 3"]
f = open("file.txt", "w")
f.writelines(seq)
f.close()
关闭文件
完成对文件的操作后,需要使用 close()
方法来关闭文件。
# 关闭文件示例
f = open("file.txt", "r")
print(f.read())
f.close() # 关闭文件
使用 with 语句
使用 with
语句可以让操作文件更加简便,因为它会自动关闭文件。
with open("file.txt") as f:
print(f.read())
文件指针位置
在读取文件时,文件指针会一直向前移动。可以通过调用 seek()
方法来将指针移到文件的任意位置。在调用 read()
方法之后,文件指针会处于读取的最后一个字符的位置。
f = open("file.txt", "r")
print(f.read(5)) # 读取前 5 个字符
print(f.read(10)) # 继续从第 6 个字符后读取 10 个字符
print(f.tell()) # 获取当前指针位置
f.seek(0, 0) # 从文件开头读取
print(f.read(15)) # 读取前 15 个字符
f.close()
自动识别文件编码
在使用 open()
函数时,可以指定编码格式。如果未指定编码方式,Python会尝试自动识别文件编码。自动识别文件编码有时可能会出现识别错误的情况,因此在读取文件时最好指定编码方式,以避免出现异常。
f = open("file.txt", encoding="utf-8")
print(f.read())
f.close()
使用 os 模块操作文件
Python 的 os
模块提供了一些方法来操作文件。
rename()
:重命名文件。remove()
:删除文件。
import os
# 重命名文件
os.rename("file.txt", "newfile.txt")
# 删除文件
os.remove("newfile.txt")
结论
在Python中,文件操作是必备的技能之一。Python提供了方便且易于使用的方法来读写文件。对于文件读取,我们可以使用 read()
、readline()
和 readlines()
函数。对于文件写入,我们可以使用 write()
和 writelines()
函数。完成对文件的操作后,需要使用 close()
方法来关闭文件。在读取文件时,如果没有指定编码方式,Python会尝试自动识别文件编码。在使用 open()
函数时,最好指定编码方式,以避免出现异常。除了使用 open()
函数操作文件之外,还可以使用 os
模块来进行文件操作。