Python 文件操作

Jinku Hu 2023年1月30日
  1. 打开文件
  2. 关闭文件
  3. 文件对象
  4. 写入文件
  5. 读取文件
  6. 重命名和删除文件
Python 文件操作

在本节中,我们将来学习 Python 中的文件操作。

在 Python 中,你可以打开、读取或写入文件,然后最终关闭文件。这些可以通过使用一些文件操作函数来完成。要对文件执行任何操作,你必须首先创建文件对象。

打开文件

一个文件可以使用 open() 函数来打开,Python 自动随之就创建一个文件对象,用于稍后对该文件执行操作。

打开文件的语法如下,

obj = open(fileName, mode)

fileName 是文件名,mode 定义了文件打开的模式,例如 r 是以只读模式来打开文件。

fobj = open("PythonExamplefile.txt", "r")

文件打开模式

模式 含义
r 读取模式
rb 读取模式下二进制格式在
r+ 读写模式
rb+ 读写模式下二进制格式
w 写入模式。如果该文件不存在,将创建一个新文件。如果文件存在,则会被覆盖
wb 写入模式下二进制格式。如果该文件不存在,将创建一个新文件。如果文件存在,则会被覆盖
w+ 读写模式。如果该文件不存在,将创建一个用于读写的新文件。如果文件存在,则会被覆盖
wb+ 读写模式下二进制格式。如果该文件不存在,将创建一个用于读写的新文件。如果文件存在,则会被覆盖
a 追加模式。新数据将写在文件末尾。如果该文件不存在,将创建一个用于写入的新文件
ab 追加模式下二进制格式。新数据将写在文件末尾。如果该文件不存在,将创建一个用于读写的新文件
a+ 追加和读写模式。新数据将写在文件末尾。如果该文件不存在,将创建一个用于读写的新文件
ab+ 追加和读写模式。新数据将写在文件末尾。如果该文件不存在,将创建一个用于读写的新文件

关闭文件

文件在执行操作后,必须要关闭,通过文件对象的 close() 方法来关闭。

fobj.close()
fobj = open("PythonExamplefile.txt", "r")
# operations on file
fobj.close()

文件对象

打开文件时,会创建一个可用于执行操作的文件对象。你可以通过它来获取有关文件的信息,例如文件名、打开模式等。

fobj = open("PythonExamplefile.txt", "r")
print("File name", fobj.name)
print("File mode", fobj.mode)
fobj.close()
File name PythonExamplefile.txt
File mode r

写入文件

write() 方法用于向文件中写入内容,文件必须在打开后才能写入。

使用 write() 方法的语法如下:

fobj.write("string")

举个例子,

fobj = open("PythonExamplefile.txt", "w")
fobj.write("Hello Python Programming")
fobj.close()

Hello Python Programming 会被写入到文件 PythonExamplefile.txt 中,假如原来文件中有内容,就会被覆盖掉。

读取文件

你可以使用 read() 方法来读取文件。下面是从文件中读取的语法:

fobj.read(numberofBytes)

这里 numberofBytes 是从文件中读取的总字节数。

fobj = open("PythonExamplefile.txt", "r")
content = fobj.read(5)
print(content)
fobj.close()
Hello

重命名和删除文件

重命名文件

rename() 方法用于重命名文件,其语法如下,

os.rename(currentName, newName)

这里,os 是一个模块,它允许你执行依赖于操作系统的功能。

举例如下,

import os

os.rename("PythonExamplefile.txt", "Python.txt")

Python.txt 该文件的新名称。

删除文件

文件可以通过 remove() 方法来删除,其语法如下,

os.remove(nameofFile)

举例如下,

import os

os.remove("Python.txt")
作者: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

DelftStack.com 创始人。Jinku 在机器人和汽车行业工作了8多年。他在自动测试、远程测试及从耐久性测试中创建报告时磨练了自己的编程技能。他拥有电气/电子工程背景,但他也扩展了自己的兴趣到嵌入式电子、嵌入式编程以及前端和后端编程。

LinkedIn Facebook