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")
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn