目录

一、文件介绍

1.  文本文件

2.  二进制文件

二、文件操作

1.  文件打开

2.  文件读入

3.  文件写入

4.  文件关闭

5.  文件关闭异常处理


一、文件介绍

按文件中数据的组织形式把文件分为文本文件和二进制文件两类。

1.  文本文件

       文本文件存储的是常规字符串,由若干文本行组成,通常每行以换行符'\n'结尾。常规字符串是指记事本或其他文本编辑器能正常显示、编辑并且人类能够直接阅读和理解的字符串,如英文字母、汉字、数字字符串。文本文件可以使用字处理软件如gedit、记事本进行编辑。


2.  二进制文件

      二进制文件把对象内容以字节串(bytes)进行存储,无法用记事本或其他普通字处理软件直接进行编辑,通常也无法被人类直接阅读和理解,需要使用专门的软件进行解码后读取、显示、修改或执行。常见的如图形图像文件、音视频文件、可执行文件、资源文件、各种数据库文件、各类office文档等都属于二进制文件。

二、文件操作

1.  文件打开

       如果执行正常,open()函数返回1个文件对象,通过该文件对象可以对文件进行读写操作。如果指定文件不存在、访问权限不够、磁盘空间不足或其他原因导致创建文件对象失败则抛出异常。

open(file, mode='r', buffering=-1, encoding=None, errors=None,
     newline=None, closefd=True, opener=None)

'''
file参数指定了被打开的文件名称。
mode参数指定了打开文件后的处理方式。
buffering参数指定了读写文件的缓存模式。0表示不缓存,1表示缓存,如大于1则表示缓冲区的大小。默认值-1表示由系统管理缓存。
encoding参数指定对文本进行编码和解码的方式,只适用于文本模式,可以使用Python支持的任何格式,如GBK、utf8、CP936等等。
'''

文件打开模式

描述

r

只读模式(默认模式,可省略),如果文件不存在则抛出异常

w

覆盖写模式,文件不存在则创建,存在则前完全覆盖

x

创建写模式,文件不存在则创建,存在则抛出异常

a

追加写模式,文件不存在则创建,存在则在文件最后追加内容

b

二进制模式(可与其他模式组合使用)

t

文本模式(默认模式,可省略)

+

读、写模式(可与其他模式组合使用

rb

以二进制格式打开一个文件用于只读,文件指针将会放在文件的开头

r+

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

w+

打开一个文件用于读写,如果该文件以存在则将其覆盖,如果该文件不存在,创建新文件

a+

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

python的文件类型 python中文件类型_python

代码实例

f = open("f.txt", "r",, encoding="utf-8")   # open()函数打开文件 ; “r” 只读模式打开文本文件

txt = f.read()           # 对全文txt进行处理

f.close()                #  .close()方法关闭文件

2.  文件读入

文件读入方法

描述

代码实例

.read([size])

读入全部内容,如果给出参数,读入前size长度

txt = f.read(2)

.readable([size])

测试当前文件是否可读

txt = f.readable(2)

.readline([size]) 

从文本文件中读取一行内容作为结果返回,如果给出参数,读入该行前size长度

txt = f.readline()

.readlines([hint])

读入文件所有行,以每行为元素形成列表,如果给出参数,读入前hint行

txt = f.readlines()

代码实例1

f = open("123.txt","r",encoding="utf-8")   # open()函数打开文件 ; “r” 只读模式打开文本文件

print(f.readline())

f.close()          #  .close()方法关闭文件

代码实例2:文件打开异常处理

try:
    f = open('study.txt','r')
    for r in f:
        print(r.strip())
    f.close()
except FileNotFoundError:
    print('找不到文件')
except Exception as e:
    print(e.args)

>>> 找不到文件

3.  文件写入

文件写入方法

描述

代码实例

.write(s)

将s的内容写入文件

f.write("人生苦短,我学Python!")

.writelines(lines)

将字符串列表写入文本文件,不添加换行符

f.writelines(["中国","美国","俄国"])

>>> 中国美国俄国

.writable()

测试当前文件是否可写

f.writeable("人生苦短,我学Python!")

.seek(offset[, whence])

改变当前文件操作指针的位置,offset表示相对于whence的位置。whence为0表示从文件开头开始计算,1表示从当前位置开始计算,2表示从文件结尾开始计算,默认为0

f.seek(0)   # 回到文件开头

代码实例 

f = open("123.txt","w+",encoding="utf-8")     # 写入文件
ls = ["中国","法国","美国"]
f.writelines(ls)     # 写入内容
f.seek(0)            # 回到文件开始
for line in f:      # 逐行读入并打印内容
    print(line)
f.close()           # 关闭文件

4.  文件关闭

当对文件内容操作完以后,一定要关闭文件对象,这样才能保证所做的任何修改都确实被保存到文件中。

f.close()

5.  文件关闭异常处理

       即使写了关闭文件的代码,也无法保证文件一定能够正常关闭。例如,如果在打开文件之后和关闭文件之前发生了错误导致程序崩溃,这时文件就无法正常关闭。在管理文件对象时推荐使用with关键字,可以有效地避免这个问题。with语句的用法如下:

with open(filename, mode, encoding) as f:   # 这里通过文件对象f来读写文件内容的语句

代码实例

s = 'Hello world\n文本文件的读取方法\n文本文件的写入方法\n'

with open('sample.txt', 'w') as f:    # 文件打开
    f.write(s)       # 文件写入

with open('sample.txt') as f:         # 文件打开
    print(f.read())  # 文件读取