Skip to content

文件操作

  • 对文件的操作包括:打开、读取、写入、关闭等。

打开文件

  • 使用 open() 函数打开文件,返回一个文件对象。
python
f = open('test.txt', 'r')
  • 完整格式 open(file, mode='r', buffering=-1, encoding='utf-8')
  • 参数说明
    • file:要打开的文件路径。
    • mode:打开文件的模式,默认值为 'r',表示只读模式。
    • encoding:指定文件的编码方式,默认值为 'utf-8',表示使用 UTF-8 编码方式。
    • buffering:指定文件的缓冲策略,默认值为 -1,表示使用系统默认的缓冲策略。
  • mode 说明
    • 'r'read 只读模式,文件指针指向文件开头。
    • 'w'write 写入模式,文件指针指向文件开头。如果文件不存在,则创建文件;如果文件存在,则清空文件内容。
    • 'a'append 追加模式,文件指针指向文件末尾。如果文件不存在,则创建文件;如果文件存在,则在文件末尾追加内容。
    • 'r+':读写模式,文件指针指向文件开头。文件存在时,文件内容可以被读取和修改;文件不存在时,抛出 FileNotFoundError 异常。
    • 'w+':读写模式,文件指针指向文件开头。文件存在时,文件内容可以被读取和修改;文件不存在时,创建文件。
    • 'a+':读写模式,文件指针指向文件末尾。文件存在时,文件内容可以被读取和修改;文件不存在时,创建文件。

读取文件

  • 使用 read() 方法读取文件内容。
  • 读取文件时,需要指定读取的字符数。
  • 如果不指定字符数,则读取整个文件内容。
python
# 获取文件所有内容,返回的是字符串
content1 = f.read()
# 获取文件所有内容,返回的是列表
content2 = f.readlines()
# 获取文件一行内容,返回的第一行,并且移动文件指针到下一行
content3 = f.readline() # 读取第一行,并且移动文件指针到下一行
content4 = f.readline() # 读取第二行,并且移动文件指针到下一行
content5 = f.readline() # 读取第三行,并且移动文件指针到下一行

写入文件

使用 write() 方法写入文件内容。

python
f.write('hello world')

# 文件复制示例
with open('./a.txt', 'r', encoding = "utf-8") as f1, open("./b.txt", "w", encoding = "utf-8") as f2:
	for line in f1:
		line = line.strip()
		if line.startswith("张"):
			line = line.replace("张", "王")
		f2.write(line + "\n")

文件定位

  • 使用tell() 方法获取文件指针的位置。
  • 使用 seek() 方法定位文件指针的位置。
  • seek(offset, whence) 方法的参数说明
    • offset:文件指针的偏移量。
    • whence:文件指针的参考位置,默认值为 0,表示文件开头。
    • whence 可选值
      • 0:文件开头。
      • 1:文件当前位置。
      • 2:文件末尾。
python
f.seek(0) # 定位文件指针到文件开头
f.seek(10) # 定位文件指针到第10个字符
f.seek(0, 2) # 定位文件指针到文件末尾

关闭文件

  • 使用 close() 方法关闭文件。
  • 使用 with 语句打开文件,会自动关闭文件。
python
# 手动关闭文件
f.close()

# with 会自动关闭文件
with open('test.txt', 'w') as f:
    f.write('hello world')

删除文件

使用 os.remove() 方法删除文件。

python
import os
os.remove('test.txt')

文件重命名

使用 os.rename() 方法重命名文件。

python
import os
os.rename('test.txt', 'test1.txt')