阅读前提:此篇笔记主为个人校内学习笔记,各位可以选择性参考,以下内容中所提文件素材(结果会略写)概览就好,以代码运用为中心。
一、文件的类型(编码不同分类)
1、文本文件:基于字符编码,存储的是普通字符串,不包括字体、字号、样式、颜色等信息。可以通过文本编辑器显示和编辑。如.txt/py/,html/.csv./xls/.xlsx
2、二进制文件:基于编码的,以字节形式存储,其编码长度根据值的大小长度可变。如.jpg/.avi等图片、音频或视频文件。
二、文件的操作
1、使用open()函数打开(或建立)文件,返回一个file对象:
2、使用file对象的读/写方法对文件进行读/写的操作:
3、使用file对象的close()方法关闭文件。
4、示例如下:
#文本文件的操作:示例1:读出文件夹Stu_pack里的文本文件(英文和中文)
file = open('../Stu_pack/Dream It Possible.txt',encoding = 'utf-8') #创建打开文件对象file
#file.read() #一次性读取文件
f_r = file.readlines() #以行为单元读取文件 定义f_r存放按行读取的文件
for line in f_r: #遍历文件列表,并打印出来
print(line)
file.close() #关闭文件,不然内容丢失
结果为:
对应文件夹下的全部内容(Dream It Possible(梦想成为可能)- Delacey 歌词(中英对照))
#读取二进制文件
from PIL import Image #导入pillow第三方库中的Image图片库模块
im = Image.open(r'C:\Users\Administrator\Desktop\202203123周思佳\Stu_pack\Five_Star.png')
#创建打开文件对象
im.save('Five_Star.png') #相对路径保持文件
im.save(r'C:\Users\Administrator\Desktop\202203123周思佳\demo\Five_Star.png')
im.show() #在当前窗口显示文件
以下是一些需要用到的第三方库安装。
pip list #查看本环境安装的第三方库
pip show wordclouds #显示需要查找的第三方库
pip install wordclouds #安装第三方库
pip show xlrd #显示读取Excel文件
pip show xlwt #显示写入Excel文件
pip show xlwt
import xlwt
示例3:写文本文件:向当前文件夹demo里写入文件test.txt,其内容为10行自己的学号姓名,每行前面有序号。
file = open('test.txt','w+',encoding = 'utf-8')
for i in range(1,11):
file.write(str(i)+'\t'+'202201111阿未'+'\n')
file.close()
#读取test.txt
file = open('test.txt',encoding = 'utf-8')
f_r=file.read()
print(f_r)
file.close()
结果为:
1 202201111阿未
2 202201111阿未
3 202201111阿未
4 202201111阿未
5 202201111阿未
6 202201111阿未
7 202201111阿未
8 202201111阿未
9 202201111阿未
10 202201111阿未
即开即关操作文件方式:
with open('../Stu_pack/万疆.txt',encoding = 'utf-8') as file:
print(file.read())
结果为:
对应文件夹下的全部内容(万疆歌词)
三、Excel文件的读写
1、第三方库模块的安装(读取:xlrd,写入:xlwt)
2、示例1:读取Excel文件内容,将结果保持以列表中
操作步骤:
(1)导入模块xlrd
(2)打开工作簿Book
(3)指定工作簿中的表单Sheet
(4)根据行列序号读取内容
读取Stu_pack里面的school.xls文件并以列表保存
#(1)导入模块xlrd
import xlrd
#(2)打开工作簿Book
wb = xlrd.open_workbook('../Stu_pack/school.xls','rt') #创建打开文件(工作薄)的对象wb
#(3)指定工作簿中的表单Sheet
sheet = wb.sheet_by_index(0) #创建索引表单的对象sheet
#(4)根据行列序号读取内容
schools = [] #定义一个二维列表school
for row in range(sheet.nrows):
school = [] #定义一个一维列表school,存放一行的单元格内容
for col in range(sheet.ncols):
content = sheet.cell_value(row,col) #获取单元格的内容并保存在变量content内
school.append(content) #将内容追加到一维列表school买一行里面
schools.append(school) #将内容追加到二维列表里面
for school in schools:
print(school)
结果为:
在对应的文件夹下创建了一个以文件Stu_pack里面的school.xls文件为内容的列表。