一、文件的类型(编码不同分类)
1、文本文件:基于字符编码,存储的是普遍字符串,不包括字体、字号、样式、颜色等信息,可通过文本编辑器显示和编辑。
如:.txt/.py/.html/.csv/.xls/.slsx
2、二进制文件:基于值编码的,以字节形式存储,其编码长度根据值的大小长度可变。
如:.jpg/.avi等图片、音频或视频文件
二、文件的操作
1、使用open( )函数打开(或建立)文件,返回一个file对象;
2、使用file对象的读\写方法对文件进行读\写的操作;
3、使用file对象的close( )方法关闭文件
示例如下:
示例1:读出文件夹Stu_pack里的文本文件(英文和中文)
原文件样式:
代码:
#创建打开文件对象file
file=open(r'C:\Users\William\Desktop\Stu_pack\Dream It Possible.txt',encoding='utf_8')
#file.read( ) #一次性读取文件
f_r=file.readlines() #以行为单元读取文件 定义列表f_r存放按行读取的文件
for line in f_r: #遍历文件列表,并打印出来
print(line)
file.close() #关闭文件,不然内容丢失
效果展示:呈现效果太长,只放一部分
示例2:读取二进制文件
原文件样式:
代码:
from PIL import Image #导入pillow第三方库中的Image图片库模块
im=Image.open(r'C:\Users\William\Desktop\Stu_pack\Five_Star.png') #/左斜杠真正代表路径,/反斜杠为转义字符
#创建打开文件对象
#im.save('Five_Star.png') #相对路径保存
im.save(r'C:\Users\William\Desktop\python\Jumpter\Five_Star.png') #绝对路径
im.show() #在当前窗口显示文件
效果如下:在一个新的窗口打开文件,内容相同,但名字不同,同时通过路径在目标文件夹创建一个新的文件.
示例3:写文本文件:向当前文件夹demo里写入文件test.txt,其内容为10行自己的学号姓名(这里用其他的代替),每行前面有序号
#创建文件'test.txt'打开文件对象file
file = open('test.txt','w+',encoding='utf-8')
#循test.txt'环10次
for i in range(1,11):
file.write(str(i)+'\t'+'HEYHEYHEY'+'\n')
#关闭文件,防止内容丢失
file.close()
#读取test.txt
hile=open('test.txt',encoding='utf-8')
h_r=hile.read()
print(h_r)
hile.close()
效果如下:
实例4:即开即关操作文件方式:
原文件样式:
代码:
with open(r'C:\Users\William\Desktop\Stu_pack\万疆.txt',encoding='utf-8')as file:
print(file.read())
效果如下:
5、常见错误:
①、’/‘左斜杠真正代表路径,’\‘反斜杠为转义字符,要在路径前添加’r‘或者’R‘原始字符串表示
以示例2举例:
下图代码可以正常运行
没有添加原始字符串表示,则报错
三、知识点
1、file:表示文件名或文件路径的字符串。
以D:\test.txt(D盘下的test.txt文件)为例,文件名的路径包含特殊字符“\”。该文件名有三种写法:d:\test.txt、d:\\test.txt、d:/test.txt。
2、mode:文件打开的模式。如读、写、追加等模式,默认为读模式。Python中文件打开的模式主要涉及以下字符参数:
r:以只读形式打开文件(默认值,可以省略),文件不存在时报错;
w:以只写形式打开文件,文件不存在时,则新建文件,文件存在时会清除原有内容;
x:文件不存在时则新建文件并写入,文件存在时则报错;
a:如果文件存在,则在文件末尾追加写内容;
b:操作二进制文件;
t:操作文本文件(默认值,可以省略);
+(加号):打开文件用于更新,既可读,也可写,不能单独使用,需和其他字符配合使用。
文件打开的模式组合及其特点
mode取值 权限
是否以
二进制
读写
是否删除
原内容
文件不存在时
是否产生异常
读 写 追加
r 是 是
r+ 是 是 是
rb+ 是 是 是 是
w 是 是 否,创建新文件
w+ 是 是 是 否,创建新文件
wb+ 是 是 是 是 否,创建新文件
a 是 否,创建新文件
a+ 是 是 否,创建新文件
ab+ 是 是 是 否,创建新文件
PS:"写“指从头开始写,覆盖原来的内容
”追加“指从文件末尾开始写,保留原有的内容
”r+"指写多少覆盖多少,未覆盖部分内容 保留
“w+‘指覆盖所有都内容,最终为当前所写内容
3、buffering:设置缓存。
4、encoding:设置文件的编码,一般使用UTF-8 编码
因为默认写模式不支持中文字符,需要将代码改为UTF-8,支持中英文。
5、errors:设置编码错误的处理方式(忽略或报错)。
6、newline:设置新行处理方式。
7、closefd:设置文件关闭时是否关闭文件描述符。
PS:open()函数中file 参数是必需的,其他参数都是可选的。实际应用中通常传递三个参数:file,mode和 encoding。使用open()函数打开文后,就可以对文件对象进行读写操作。表 8-2 列出了文件对象的常用操作方法。
8、文件对象的常见操作方法:
read([size]):读取文本数据.将所有内容作为一个字符串返回。若给定正整数 n,将返回n个字节的字符(若不足n个字节字符,则返回所有内容)
readline():单独读取文本的一行字符,包括n"字符
readlines():把文本文件中的每行文本作为一个元素存人列表中,并返回该列表
write( str):写人文本数据,返回值为写人的字节数
四、Excel文件的读写
(一)、读写模块的安装
Excel是二进制文件,需要安装第三方模块来实现对Excel文件的操作。
1、xlrd:读取Execl文件 xlwt:向Excel文件写入内容
2、安装:pip install xlrd 和 pip install xlwt
安装方法:
或者在命令窗口下载
pip install -i https://pypi.douban.com/simple xlwt
pip install -i https://pypi.douban.com/simple xlrd
或者下载Anaconda集成开发环境中自带这俩个模块
(二)、Execl文件的读取操作
1、第三方库模块的安装(读取:xlrd,写入:xlwt)
2、操作步骤:
(1)导入模块xlrd
(2)打开工作簿Book
(3)指定工作簿中的表单Sheet
(4)根据行序列号读取内容