1.文本文件:基于字符编码,存储的是普通字符串,不包括字体、字号、颜色、等信息,可通过文本编辑器显示和编辑。如,txt/.py/yhtml/.csv/.xls/.xlsx
2、二进制文件:基于值编码的,以字节形式存储,其编码长度根据值的大小长度可变,如,jpg/avi等图片,音频或视频文件
1、使用open()函数打开(或建立)文件,返回一个file对象;
2、使用file对象的读/写方法对文件进行读/写的操作;
3、使用低了对象的close()方法关闭文件。
4、示例如下:
#实例一、打开纯英文文件
#file = open('../Stu_pack/See You Again.txt') #相对路径打开文件,并创建文件对象
file = open( 'C:\\Users\\Administrator\\Desktop\\202209327张培森\\Stu_pack\\See You Again.txt') #用绝对路径打开
# file.read() #一次性读取全部内容
# 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)
打开文件时需要指定正确的字符编码(例如UTF-8)以确保正确读取和处理非英文字符。在上面的代码中,Dream It Possible.txt
是待打开的文件名,utf-8
是文件的字符编码。通过指定encoding='utf-8'
参数,我们确保了文件以UTF-8编码打开,可以正确处理中文或其他非英文字符。
示例展示
#示例二、打开二进制文件
from PIL import Image #导入第三方库pillow中的image图片库模块
im = Image.open('../Stu_pack/Love_Star.PNG') #创建打开文件对象
im.save('Love_Star.PNG') #将打开的文件保存在指定的当前文件夹里
im.show() #给当前窗口显示文件夹
# 示例三、 写文本文件,像当前文件夹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'+'202209327 张培森 '+'\n')
with open('test.txt',encoding = 'utf-8') as file:
print(file.read())
操作步骤:
(1)导入模块xlrd
(2)打开工作簿book
(3)指定工作簿的表单sheet
(4)根据行列序号读取内容
#(1)导入模块xlrd
import xlrd
#(二)打开工作簿book
wb = xlrd.open_workbook('../Stu_pack/school.xls') #创建文件工作簿wb
#(3)指定工作簿的表单sheet
sheet=wb.sheet_by_index(0) #打开表单并创建对象sheet
#(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) #将每一行的内容追加到二维列表中
for school in schools:
print(school)
(1)导入模块:xlwt
(2)构造工作簿:Workbook
(3)为工作簿添加表单:Worksheet
(4)根据行列序号写入内容
(5)保存文件
# (1)导入模块:xlwt 和xlrd
import xlrd
import xlwt
#安装第三方库xlwt
#(2)读取文件内容
def read_excel(file_name):
wb = xlrd.open_workbook(file_name)
sheet=wb.sheet_by_index(0)
schools = [] #创建定义一个二维列表存放每行数据
for row in range(sheet.nrows):
school = [] #定义一个一维列表存放单元格内容
for col in range(sheet.ncols):
content = sheet.cell_value(row,col)
school.append(content) #将单元格的内容追加到一维列表里面
schools.append(school) #将每行的内容追加到二维列表中
return schools #返回二维列表值
#(3)写入文件内容
def write_excel(schools):
#(2)构造工作簿:Workbook
wb = xlwt.Workbook(encoding = 'utf-8')
#(3)为工作簿添加表单:Worksheet
sheet = wb.add_sheet('上海市高校信息表')
#(4)根据行列序号写入内容
sheet.write_merge(0,0,0,6,'上海市高校信息表') #合并第一行第一个单元格到第六个单元格设置写入表头
for col in range(7): #写入列表名称(列表字段)
sheet.write(1,col,schools[0][col])
row_num = 2
for school in schools:
if school[2]=='上海市':
for col in range (7):
sheet.write(row_num,col,school[col])
row_num = row_num+1 #当写完一行之后单元格自加1行
#(5)保存文件
wb.save('../R&Q_pic/上海市高校信息表.xls')
#调用函数:
schools = read_excel('../R&Q_pic/上海市高校信息表.xls')
write_excel(schools)
#请在下面显示文件‘上海市高校信息表。xls’里面前10项内容(包括表头和列表名称共12行)
i=1
for s in schools :
if i<12:
print(s)
i=i+1
运行结果:
import pandas as pd #导入第三方库pandas
data.head(10) #显示读取文件前10行数据,为空是默认为5