一、文件的类型(编码不同分类)
1、文本文件:基于字符编码,存储的是普通字符串,不包括字体,字号,样式,颜色等信息,可通过文本编辑器显示和编辑。如:.txt/.py/.html/.csv/.xls/.xlsx
2、二进制文件:基于值编码的,以字节形式存储,其编码长度根据值的大小长度可变,如:.jpg/.avi等图片,音频或视频文件
二、文件的操作
1、使用open()函数打开(或建立)文件,返回一个file对象。
2、使用file对象的读/写方法对文件进行读/写的操作。
3、使用file对象的close()方法关闭文件。
4、示例如下:
In [12]:
#实例1:打开纯英文文件 file = open('../Stu_pack/See You Again.txt') #用相对路径打开文件,并创建文件对象 #file = open(r'C:\Users\Administrator\Desktop\202209308蔡逸臣\Stu_pack\See You Again.txt') #用绝对路径打开
In [11]:
print(file.read()) #一次性读取全部内容 f_r = file.readlines() #一行一行读取内容并存放在列表中 for line in f_r: print(line)
-----------------------------------------------------------------------------------
#打开有中文或其他语言的文本 file = open('../Stu_pack/Dream It Possible.txt','rt',encoding = 'utf-8') f_r = file.readlines() #一行一行读取内容并存放在列表中 for line in f_r: print(line)
---------------------------------------------------
#读取纯中文文本文件 file = open('../Stu_pack/万疆.txt','rt',encoding = 'utf-8') f_r = file.readlines() for line in f_r: print(line) file.close() #关闭文件
-------------------------------------------------------
#即开即关的文件操作 with open('../Stu_pack/Dream It Possible.txt',encoding = 'utf-8') as file: print(file.read())
----------------------------------------------
#实例2:打开二进制文件 from PIL import Image #导入第三方库pillow中的Image图片库模块 im = Image.open('../Stu_pack/Love_Star.PNG') #创建打开文件对象 im.save('Love_Star.PNG') #将打开的文件保存在指定的当前文件夹里 im.show() #在当前窗口显示文件内容
In [40]:
#实例3:写文本文件:向当前文件夹demo里写入文件test.txt,其内容为10行自己的学号姓名,每行前面有序号 with open('test.txt','w',encoding = 'utf-8') as file: for i in range(1,11): file.write(str(i)+'\t'+'12345678哈哈'+'\n') with open('../demo/test.txt',encoding = 'utf-8') as file: print(file.read())
1 12345678哈哈 2 12345678哈哈 3 12345678哈哈 4 12345678哈哈 6 12345678哈哈 7 12345678哈哈 8 12345678哈哈 9 12345678哈哈 10 12345678哈哈
--------------------------------------
三、Excel的读写
1、第三方库模块的安装(读取:xlrd,写入:xlwt)
2、实例1:读取Excel文件内容,将结果保存以列表中
操作步骤:
(1)导入模块xlrd
(2)打开工作簿Book
(3)指定工作簿中的表单Sheet
(4)根据行列序号读取内容
In [41]:
#(1)导入模块xlrd import xlrd
In [44]:
#(2)打开工作簿Book wb = xlrd.open_workbook('../Stu_pack/school.xls') #创建文件工作簿对象wb
In [45]:
#(3)指定工作簿中的表单Sheet sheet = wb.sheet_by_index(0) #打开表单并创建对象sheet
In [46]:
#(4)根据行列序号读取内容 schools = [] #定义一个二维列表存放每行的数据 for row in range(sheet.nrows): school = [] #定义一个一维列表存放单元格内容 for col in range(sheet.ncols): content = sheet.cell_value(row,col) #将单元格的内容存放在变量content里面 school.append(content) #将单元格内容追加到一维列表里面 schools.append(school) #将每一行的内容追加到二维列表中
In [47]:
for school in schools: print(school)