一、文件的类型(编码不同的分类)
1.文本文件:基于字符编码,存储的是普通字符串,不包括字体,字号,样式,颜色等信息,可通过文本编辑器显示和编辑。如:.txt/.py/.html/.csv/.xls/.xlsx
2.二进制文件:基于值编码的,以字节形式存储的,其编码长度根据值的大小长度可变。如:.jpg/.avi等图片。音频或视频文件。
二、文件的操作
1、使用open()函数打开(或建立)文件,返回一个file对象;
2、使用file对象的读/写方法对文件读/写的操作;
3、使用file对象的close()方法关闭文件;
4、示例如下;
In [38]:
#示例1:读出文件夹Stu_pack里的文本文件‘See You Again.txt’ #(1)打开文件(英文与中文不一样) #open('C:\\Users\\yzkj\\Desktop\\。。\\Stu_pack\\See You Again.txt') #open('C:/Users/yzkj/Desktop/。。。。/Stu_pack/See You Again.txt') #open(r'C:\Users\yzkj\Desktop\。。。。\Stu_pack\See You Again.txt') #绝对路径 file = open('../Stu_pack/Dream It Possible.txt','rb')#encoding = 'utf-8' #(2)读文件 fr = file.readlines() #print(fr) #用print函数清洗换行 for line in fr: #常用此格式打印 print(line) #(3)关闭文件 file.close() #(4)即开即关的打开方式 with open('../Stu_pack/万疆.txt',encoding = 'utf-8') as file: file.readlines() file.close()
#示例2:读出文件夹Stu_pack里的二进制文件 from PIL import Image im = Image.open('../Stu_pack/Love_Star.PNG') #创建打开图片对象in im.save('../R&Q_pic/Love.PNG') #将生成的图片文件保存到指定的路径里面
In [51]:
#示例3:写文本文件:向当前文件夹demo里写入文件test.txt,其内容为10行自己的学号和姓名,每行前面有序号 f_w = open('test.txt','w',encoding = 'utf-8') #如果没有该文件新建文件,如果有重写文件内容 for i in range(1,11): f_w.write(str(1)+'\t'+'2021110205010戴逸闻\n\n') f_w.seek(0) #将文件指针定位在文件的开头 with open('test.txt',encoding = 'utf-8') as file: print(file.read()) f_w.close() #用with结构读出该文件内容: #with open('test.txt',encoding = 'utf-8') as file: # print(file.read())
1 、、
三、 Excel文件的读写
1.第三方库模块的安装(读取:xlrd,写入:xlwt)
2.示例1:读取Excel文件内容,将结果保存在列表中 操作步骤:
(1)导入模块xlrd
(2)打开工作薄Book
(3)指定工作薄的表单Sheet
(4)根据行列序号读取内容
In [56]:
#pip install xlrd #安装
In [64]:
#(1)导入模块xlrd import xlrd #(2)打开工作薄Book wb = xlrd.open_workbook('../Stu_pack/school.xls') #创建打开文件的对象wb #(3)指定工作薄中的工作表Sheet sheet = wb.sheet_by_index(0) #索引工作薄里面第1个工作表并创建对象,表示第2个,2表示第3个 #(4)根据行列序号读取内容 schools = [] #定义一个二维列表存放工作表数据 for row in range(sheet.nrows): school = [] #定义一个一维列表存放每行的内容(单元格内容) for col in range(sheet.ncols): content = sheet.cell_value(row,col) #读出单元格的具体数据 school.append(content) #将读出数据追加到school里面 schools.append(school) #将每行的内容追加到二维列表schools里面
In [68]:
#(5)读出数据: for school in schools: print(school)