一、简介
在编程工作中文件操作还是比较常见的,基本文件操作包括:创建、读、写、关闭等,Python 中内置了一些文件操作函数,我们使用 Python 操作文件还是很方便的。
操作流程
- 第一步:新建/打开文件
- 第二步:读取/写入
- 第三步:关闭文件
二、打开文件
模式 | 描述 |
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。 如果该文件不存在,创建新文件。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 一般用于非文本文件如图片等。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
案例:D:/py1中创建一个文件abc.txt
f = open("d:/py1/abc.txt")
f.close()
三、打开文件操作
打开文件读写方式
- r+:是以读写方式打开,但是如果文件不存在,就会报错
- w+:是以读写方式打开,但是如果文件不存在,就会创建新文件;如果文件存在,则正常打开
案例:从磁盘的文件中读内容
#coding=utf-8
# 打开文件
file1 = open("D:/py1/a2.txt","w+")
# 读取文件的内容
str = file1.read()
# 关闭文件
file1.close()
print(str)
read方法
- 作用:是从打开的文件中读取内容
- 原理:read是通过移动指针来从文件中读取内容
案例:
#coding=utf-8
# 打开文件
file1 = open("D:/py1/a1.txt","r")
# 读取文件的内容
# 第一次读取文件的内容
str1 = file1.read()
# 第二次读取文件的内容
str2 = file1.read()
# 关闭文件
file1.close()
# 第一次读取文件内容,会正常输出,第二次执行read没有任何输出
# 因为第一次读取完成后,指针已经移动到了最后的位置
print(str1)
print(str2)
write方法
- 作用:是向文件中写入内容
案例:向文件中写入内容
str1 = "hello boys\n"
str2 = "i am"
str3 = "zxhk\n"
str4 = "i come from hebei\n"
# 第一步:新建/打开文件
file = open("d:/py1/myfile.txt","a")
# 第二步:写入
file.write(str1)
file.write(str2)
file.write(str3)
file.write(str4)
# 第三步:关闭文件
file.close()
案例:将myfile.txt 复制一个新文件afile.txt
# 打开两个
# myfile.txt 以只读打开,然后读取内容
f1 = open("d:/py1/myfile.txt","r")
# afile.txt 以写打开,
f2 = open("d:/py1/afile.txt","w")
# 然后将从myfile.txt读的内容写入到afile.txt
str = f1.read()
f2.write(str)
# 关闭文件
f1.close()
f2.close()
四、文件常用方法
- read() 从文件中读取全部内容,读取后指针指向文件的末尾
- write() 向文件中写入内容
- readline() 执行一次readline,就会从文件中读取一行出来
- readlines() 执行一次readline,就会将文件中的全部内容读取出来,并保存成一个列表,一行就是一个元素
案例:让用户输入5个用户名,将用户名保存到文件中
f = open("d:/py1/name.txt","w")
for n in range(5):
name = input("please etner name: ")
str = name + "\n"
f.write(str)
f.close()