内容正文:
《Python应用程序设计》
文件操作
计算机教科组
1
文件操作
文件的分类
文件可以分为两大类,一类是文本文件,另外一类是二进制文件。文本文件通常是由特定编码的字符组成,如UTF-8编码等,并可以通过文字处理软件进行创建、编辑和修改,它与字符串类型相似。如Windows记事本创建的.txt文件,以.py为扩展名的Python源文件等都是文本文件。
二进制文件是由0和1组成的字节(bytes )流,它和文本文件最主要的区别是没有统一的字符编码,通常也无法直接被人类阅读和理解。如bmp格式额图片文件,avi格式的视频文件。
文本文件和二进制文件最主要的区别在于编码格式,二进制文件只能按字节处理,文件读写的是bytes字符串。无论是文本文件还是二进制文件,都可以用“文本文件方式”和“二进制方式”打开,但打开后的操作是不同的。
文件操作
文本文件的编码(了解即可,画线重点背下来)
ASCII: 美国信息交换标准代码,仅对10个数字、26个英文大小写字母和一些常用符号进行了编码。
UTF-8:国际通用的编码格式。UTF-8对全世界所有国家的字符都进行了编码。UTF-8在任何平台下通用。Python程序读取文件时,一般需要指定读取文件的编码方式,否则程序运行时可能会出现异常。Python源程序代码默认编码方式是UTF-8.
Unicode:可以容纳世界上所有文字和符号的字符编码方案,是编码转换的基础。编码转换时,先把一种编码的字符串转成Unicode的字符串,再转成其他编码的字符串。
GB2312:我国制定的中文编码,用1个字节表示英文字符,2个字符表示汉字字符。GBK是GB2312的扩充。
文件的打开
Python对于文本文件和二进制文件处理的过程基本与此相似。首先要将处理的文件打开,如果要查看文件则可以调用读取文件的方法,如果要对文件进行写入则可以调用写入文件的方法,最后一定要将文件关闭。
在Python中文件打开使用内置函数open(),它可以按照指定的方式打开文件并创建文件对象,语法格式为:
open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。
open(file, mode='r')
文件的打开
open( ) 函数完整的语法格式为:
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:
文件的打开
参数详细说明:
文件名(file):
(1)是必选参数,表示要打开的文件的名称和路径。
(2)路径可以使用绝对路径或相对路径表示。
绝对路径:
如f = open('D:/pfile/m.txt')或者f = open('D:\pfile\m.txt')
或者f = open('D://pfile//m.txt')或者f = open('D:\\pfile\\m.txt')
相对路径:与代码文件在相同的目录。
如f = open('test.csv')
文件的打开
(3)当使用open() 函数打开一个不存在的文件时,根据打开文件的模式不同,可能不报错。
1)只读方式打开不存在的文件,会报错。
举例:若D:/pfile/m2.txt文件不存在,则f = open('D:/pfile/m2.txt')报错
2)写方式打开不存在的文件,不会报错。它会新建该文件。
f = open('D:/pfile/m2.txt','w')
f.write('123')
f.close()
文件的打开
模式(mode)
mode是可选参数,表示打开文件的模式,即用何种方式打开该文件。默认模式以只读方式r打开文件。默认为文本模式,如果要以二进制模式打开,加上 b 。
文件打开模式 描述
r 只读模式,文件的指针将会放在文件的开头,默认模式
w 覆盖写入模式,如果该文件不存在,则创建新文件
x 写模式,新建一个文件,如果该文件已存在则会报错
a 追加写模式,如果该文件不存在,创建新文件进行写入
t 文本文件模式,默认模式
b 二进制文件模式
+ 可读可写模式,与r/w/a/x共同使用,可以打开一个文件并进行更新
文件的打开
常见的模式还有(了解即可,画线的背诵):
rb:以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默