Skip to content

在Python程序中,不管使用哪一类文件,都要经过3个步骤: 打开文件、读写文件和关闭文件。 Python语言有相应的函数来实现打开、读、写、关闭等文件操作。

1、Python文件函数

文件访问的目的是读或者写文件内容,在Python操作文件时,首先要打开文件,然后在操作完成后,还要关闭文件,一定要保持结束关闭的的编程习惯。

函数说明
open打开或新建文件,并返回文件操作对象
read将文件内容读取到内存
write将指定内容写入文件
close关闭文件

区别:

  • open函数负责打开文件,并返回文件对象;
  • read、write、close都需要通过文件对象来调用;

2、open函数

open函数可以打开一个已经存在的文件或者创建一个新的文件

python
# 语法
open(file, mode, buffering, encoding, errors, newline, closefd, opener)
  • name: 文件名字符串(可以包含文件路径;必需参数)
  • mode: 访问模式,用来指定文件的打开模式。默认值是r
  • buffering:可选参数,用于设置缓冲策略。
  • encoding:可选参数,指定文件的编码格式,例如 'utf-8'。
  • errors:可选参数,用于指定如何处理编码错误。
  • newline:可选参数,控制通用换行符模式的工作方式。
  • closefd:可选参数,若设为 False,在文件关闭时,底层文件描述符不会关闭。
  • opener:可选参数,用于自定义开启器。

3. write函数

python
# 语法
file_object.write('写入文件内容')

4. read函数

示例:

python
file_object1 = open('my_file_multiline.txt', 'r', encoding='utf-8')
# 读取文件中所有数据
content1 = file_object1.read()
print(content1)
# 读取文件中部分数据
file_object1.seek(0)
content11 = file_object1.read(12)
print(content11)

语法:

python
file_object.read(num)

说明:num表示从文件中读取的数据数量,此处指的是字符数,而不是字节数,这意味着当你读取中文文本时,num 代表的是汉字的数量(也包含其他字符,如标点符号等)。

5. seek函数

在 Python 中,当你使用 open() 函数打开一个文件后,会得到一个文件对象。 这个文件对象内部维护着一个文件指针,它标记着当前读写操作在文件中的位置。
如果你已经对文件进行了读取或写入操作,文件指针会随着操作移动。 例如,当你使用 read() 方法读取了一定数量的字符后,文件指针会移动到读取结束的位置; 使用 write() 方法写入内容后,文件指针也会移动到写入内容的末尾。

python
file.seek(offset, whence=0)

seek是文件对象的一个方法,用于移动文件指针的位置。 其中:

  • offset 表示要移动的字节数。正数表示向文件末尾方向移动,负数表示向文件开头方向移动。
  • whence 是可选参数,用于指定从哪个位置开始计算偏移量,它有三个可选值:
    • 0:从文件开头开始计算偏移量(默认值)。
    • 1:从当前文件指针位置开始计算偏移量。
    • 2:从文件末尾开始计算偏移量。

当调用 file.seek(0) 时,实际上是 file.seek(0, 0) 的简写, 它的作用是将文件指针移动到文件的开头。 这在你需要重新读取文件内容或者在文件开头进行写入操作时非常有用。