文件操作案例

是用Python对文件进行基本的读写操作。
注意:使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。
open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。

语法格式

简单的语法格式为:open(file, mode=‘r’)
完整的语法格式为:open(file, mode=‘r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
参数说明:
file: 必需,文件路径(相对或者绝对路径)。
mode: 可选,文件打开模式
buffering: 设置缓冲
encoding: 一般使用utf8
errors: 报错级别
newline: 区分换行符
closefd: 传入的file参数类型
opener:

mode模式参数详细说明:

序号

模式

描 述

1

t

文本模式 (默认)。

2

x

写模式,新建一个文件,如果该文件已存在则会报错。

3

b

二进制模式。

4

+

打开一个文件进行更新(可读可写)。

5

U

通用换行模式(不推荐)。

6

r

以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

7

rb

以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。

8

r+

打开一个文件用于读写。文件指针将会放在文件的开头。

9

rb+

以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。

10

w

打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

11

wb

以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。

12

w+

打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

13

wb+

以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。

14

a

打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

15

ab

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

16

a+

打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

17

ab+

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

18

默认为文本模式,如果要以二进制模式打开,加上 b 。

文件内建函数和方法

序号

内建函数

函数描述

1

open()

打开文件

2

read()

输入

3

readline()

输入一行

4

seek()

文件内移动

5

write()

输出

6

close()

关闭文件

其他文件内建函数和方法:

file对象使用open函数来创建,下表列出了file对象常用的函数:

序号

方法

描述

1

file.close()

关闭文件。关闭后文件不能再进行读写操作。

2

file.flush()

刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。

3

file.fileno()

返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。

4

file.isatty()

如果文件连接到一个终端设备返回 True,否则返回 False。

5

file.next()

返回文件下一行。

6

file.read([size])

从文件读取指定的字节数,如果未给定或为负则读取所有。

7

file.readline([size])

读取整行,包括 “\n” 字符。

8

file.readlines([sizeint])

读取所有行并返回列表,若给定sizeint>0,则是设置一次读多少字节,这是为了减轻读取压力。

9

file.seek(offset[, whence])

设置文件当前位置。

10

file.tell()

返回文件当前位置。

11

file.truncate([size])

截取文件,截取的字节通过size指定,默认为当前文件位置。

12

file.write(str)

将字符串写入文件,返回的是写入的字符长度。

13

file.writelines(sequence)

向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符

打开和写入实例1:
# 我们要将小说的人物记录文件中
#打开文件name.txt,并开启写入模式,付给file变量
file =open('name.txt','w') #默认只读  #open(mode=r)
#写入函数方法
file.write('宋江')
#关闭文件并保存
file.close()
#运行后在相应的路径下,产生一个name.txt文件

以上实例输出结果为:

用python写一个斌文件 python中写文件函数_文件指针

打开和读取实例2:
file1 = open('name.txt')
print(file1.read())
file.close

以上实例输出结果为:

用python写一个斌文件 python中写文件函数_用python写一个斌文件_02

打开和新增实例3:
#我们要将小说的人物记录文件中,但由于文件已有内容,需要在基础上新增内容
file2 = open('name.txt','a') #此处记住模式用:a
file2.write('吴用')
file2.close
#这就是实现了新增的功能

以上实例输出结果为:

用python写一个斌文件 python中写文件函数_python_03

文件的常用操作

打开和只读取文件一行实例4:
#我们要读取小说的人物记录的文件,只读取一行
file3 = open('name.txt') 
print(file3.readline())
file3.close
#这就是实现了新增的功能
通过for循环使用,逐行打印实例5:
#我们要读取小说的人物记录的文件,通过for循环使用,逐行打印
file4 = open('name.txt') 
for line in file4.readlines():
	print(line)
	print('-------')
file4.close

以上实例输出结果为:

用python写一个斌文件 python中写文件函数_打开文件_04

通过tell和seek,来返回文件当前位置实例6:
#打开文件
file5 = open('name.txt')
#输出光标所在位置,最初位置为0
print(file5.tell()) 
#查看文件1
file5.read(1)
#输出光标所在位置,此时位置为1
print(file5.tell())
#偏移位置,移动,第一个参数代表的是偏移的位置,第二个参数 0表示从文件开头偏移 1表示从当前位置偏移 2从文件结尾
file5.seek(0,0)
#听过验证发现回到最初的位置0
print(file5.tell())
file5.close

以上实例输出结果为:

用python写一个斌文件 python中写文件函数_文本文件_05