一、简介

在编程工作中文件操作还是比较常见的,基本文件操作包括:创建、读、写、关闭等,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()