您的位置:

Python文件读写操作:简单又高效地操作文件

在Python编程中,文件读写操作是必不可少的一部分。通过文件读写,可以在Python程序中读取外部文件的数据,或将生成的数据写入到外部文件中。Python提供了强大的文件读写操作功能,能够实现各种高效的文件处理需求。本文将介绍Python文件读写的详细步骤以及注意事项。

一、打开和关闭文件

在Python中,要进行文件读写,首先需要打开文件。我们可以使用Python内置的open()函数来打开一个文件,并得到一个文件对象file_object,其语法如下:

file_object = open(file_name [, access_mode][, buffering])

其中file_name是文件的名称和路径,access_mode指定文件打开模式(可选参数,默认为r),buffering指定缓冲区大小(可选参数,默认值为-1,表示使用系统默认值)。打开文件之后,操作完成后需要关闭文件,以释放资源。我们可以使用文件对象的close()方法来关闭文件,其语法如下:

file_object.close()

为了保证文件在操作过程中的正确性,应当养成在每次文件操作完成后关闭文件的好习惯。

二、读取文件

Python提供了多种读取文件的方法,下面分别介绍。

1. 读取整个文件内容

我们可以使用文件对象的read()方法来读取整个文件内容。其语法如下:

file_object.read([size])

其中size是可选参数,指定要读取的字节数。如果不指定size,则会读取文件所有数据。

示例代码:

filename = 'test.txt'

# 打开文件
fo = open(filename, "r")
str = fo.read()
print ("文件名为: ", filename)
print (str)
# 关闭文件
fo.close()

2. 逐行读取文件内容

我们可以使用文件对象的readline()方法来逐行读取文件内容。其语法如下:

file_object.readline([size])

其中size是可选参数,指定要读取的字节数。如果不指定size,则会读取一行数据。

示例代码:

filename = 'test.txt'

# 打开文件
fo = open(filename, "r")
line = fo.readline()
while line:
    print ("读取的数据为: %s" % (line))
    line = fo.readline()
# 关闭文件
fo.close()

3. 读取文件所有行

我们可以使用文件对象的readlines()方法来读取文件所有行。其语法如下:

file_object.readlines()

该方法将文件的各行数据读取到一个列表中返回。

示例代码:

filename = 'test.txt'

# 打开文件
fo = open(filename, "r")
lines = fo.readlines()
print ("读取到的所有行数据为: ")
for line in lines:
    print (line)
# 关闭文件
fo.close()

三、写入文件

Python提供了多种写入文件的方法,下面分别介绍。

1. 写入文件指定字符串

我们可以使用文件对象的write()方法来写入指定字符串到文件中。其语法如下:

file_object.write(str)

其中str为要写入的字符串。如果文件不存在,则写入的同时会自动生成文件。

示例代码:

filename = 'test.txt'

# 打开文件
fo = open(filename, "w")
str = "Python 文件读写操作。\n"
fo.write(str)
# 关闭文件
fo.close()

2. 在文件指定位置写入字符串

我们可以使用文件对象的seek()方法和tell()方法来定位文件指针的位置,并使用write()方法来在指定位置写入字符串。定位文件指针位置的方法:

  • seek(offset[, whence]):将文件指针移动到指定的偏移量offset处。其中whence表示偏移量的参考位置,其取值范围为0(文件开头)、1(当前位置)、2(文件结尾),默认为0。
  • tell():返回当前文件指针的位置。

示例代码:

filename = 'test.txt'

# 打开文件
fo = open(filename, "r+")
str1 = fo.read()
print ("原始数据为 : ", str1)

# 将文件指针移动到文件头
fo.seek(0, 0)
str2 = "Python File Write Operation!"
fo.write(str2)

# 将文件指针移动到文件头
fo.seek(0, 0)
str3 = fo.read()
print ("修改后的数据为 : ", str3)

# 关闭文件
fo.close()

3. 追加到文件

我们可以使用文件对象的write()方法以及指定打开文件的模式为a,来将字符串追加到文件末尾。其语法如下:

file_object = open(file_name, 'a')
file_object.write(str)

其中file_name为文件名,str为要追加的字符串。

示例代码:

filename = 'test.txt'

# 打开文件
fo = open(filename, "a")
str = " 记得要将文件关闭!!!\n"
fo.write(str)
# 关闭文件
fo.close()

四、总结

本文介绍了Python文件读写操作的详细步骤以及注意事项。在读取文件时,可以使用read()readline()readlines()等方法逐一读取文件内容。在写入文件时,可以使用write()方法将指定的字符串写入文件中,也可以使用seek()tell()方法定位文件指针的位置并进行文件写入操作。

为了保证操作的正确性,在每次文件操作完成后,应当养成关闭文件的好习惯,释放文件资源。