python中的文件读写操作

思维导图

Python读写CSV文件

csv文件是什么?

CSV(Comma Separated Values)全称逗号分隔值文件是一种简单、通用的文件格式,被广泛的应用于应用程序(数据库、电子表格等)数据的导入和导出以及异构系统之间的数据交换。

csv有什么特点

  1. 纯文本,使用某种字符集(如ASCII、Unicode、GB2312)等);
  2. 由一条条的记录组成(典型的是每行一条记录);
  3. 每条记录被分隔符(如逗号、分号、制表符等)分隔为字段(列);
  4. 每条记录都有同样的字段序列。

将数据写入CSV文件

  1. 使用Python标准库中的scv模块。
  2. writer函数会返回一个csvwriter对象,通过该对象的writerow或writerows方法就可以将数据写入到CSV文件中。
# 导入csv模块
import csv
# 使用CSV内置模块进行csv文件的读写操作。
# 1.返回一个文件对象
# Windows或者linux操作系统,写CSV文件必须加newline=''
# newline = ''   -> 将换行转为空
f1 = open('./店铺信息.csv', 'w', encoding='utf-8', newline='')
# 2.创建写方法对象
mywrite = csv.writer(f1)
# 3.写入列名:
# 单行写入:writerow()
col = ['店铺名', '人均', '口味', '环境', '服务']
mywrite.writerow(col)
# 4.写入对应信息
# 多行写入:writerows()
datas = [['吼堂老火锅', 126, 4.5, 4.7, 4.6],['小龙坎', 100, 4.8, '4.8', 4.7],['巴蜀大宅门', '70', '4.8', '4.6', 4.8]
]
mywrite.writerows(datas)
f1.close()

读csv文件

要读取刚才创建的CSV文件,可以使用下面的代码,通过csv模块的reader函数可以创建出csvreader对象,该对象是一个迭代器,可以通过next函数或for-in循环读取到文件中的数据

# 导入csv模块
import csv
# CSV文件读操作
f2 = open('./店铺信息.csv', 'r', encoding='utf-8')
# 创建读方法
myreader = csv.reader(f2)
for i in myreader:# print(i)for j in i:print('{:<8}'.format(j), end='')print()f2.close()

Python读写xlsx、xls文件

.xls:excel 2007以前的文件后缀名。最多容纳256列16000+行数据。 —> xlwt、xlrd

.xlsx:excel 2007开始文件使用的后缀名。最多容纳16000+列1048567行数据。
excel 2007开始兼容xls、xlsx后缀名。 —> openpyxl

Python读写xlsx文件

import openpyxl# 1.新建一个excel文件
# 新建文件:openpyxl.Workbook()
file = openpyxl.Workbook()
# 如果文件存在:openpyxl.load_workbook(文件路径和文件名)# 2.操作工作表
# 创建工作表对象:create_sheet(表名,下标)
#如果直接在工作簿最后追加工作表,下标参数不用写
file.create_sheet('学生成绩', 0)
file.create_sheet('学生成绩1')
# 查看工作簿中已经存在的工作表:sheetnames
print(file.sheetnames)
# 移除工作表:remove(表)  --> 表:工作簿对象[工作表]
file.remove(file['Sheet'])
#从学生成绩工作表插入信息
# cell(行 ,列) --》定位单元格
# value --》获取单元格内容
print(file['学生成绩'].cell(1,1).value)
file['学生成绩'].cell(1,1).value= '姓名'
print(file['学生成绩'].cell(1,1).value)
file['学生成绩'].cell(1,2).value= '性别'
# 方法二: 使用列号行号    定位单元格
file = ['学生成绩']
# 保存文件
file.save('./学生成绩.xlsx')# 读xlsx文件import openpyxlfile = openpyxl.load_workbook('./学生成绩.xlsx')
ws = file['学生成绩']
rows = ws.max_row
col = ws.max_column
for i in range(1, rows):for j in range(1, col + 1):print(ws.cell(i, j).value)# 加载xlsx文件
file = openpyxl.load_workbook('./学生成绩.xlsx')
# 从工作簿中找工作表
ws = file['学生成绩']
# max_row:获取xlsx文件中最大行数
rows = ws.max_row
# max_column:获取xlsx文件中最大列数
col = ws.max_column
# 行
for i in range(1, rows + 1):# 列for j in range(1, col + 1):print(ws.cell(i, j).value)

Python读写xls文件

  1. 所需第三方库
    xlwt : xls文件写操作
    xlrd : xls文件读操作
  2. 代码演示,写操作。
import randomimport  xlwt# 创建文件
wb = xlwt.Workbook()
# 创建工作表 + 调用
sheet1 = wb.add_sheet('一年级一班成绩')
sheet2 = wb.add_sheet('一年级二班成绩')
sheet3 = wb.add_sheet('一年级三班成绩')# 写入数据names = ['张飞','刘备','关羽','曹操','貂蝉']
subject = ['姓名','语文','数学','英语']
for i in range(len(subject)):sheet1.write(0,i,subject[i])for i in range(1,len(names)+1):sheet1.write(i,0,names[i-1])for j in range(1,4):#工作表.write (row,col ,content)sheet1.write(i,j,random.randint(0,100))
wb.save('一年级成绩表.xls')
  1. 读操作。
import xlrd# 打开文件
wb = xlrd.open_workbook('一年级成绩表.xls')
# 选择工作表
# sheet_names() --> 查看存在的所有工作表
print(wb.sheet_names())
# sheet_by_index()
# sheet_by_name()
ws = wb.sheet_by_index(0)
print(ws.cell(0, 0).value)
ws1 = wb.sheet_by_name('一年级一班成绩')
print(ws1.cell(0, 0).value)# 获取行列数
# nrows:获取最大行数
# ncols:获取最大列数
print(ws1.nrows, ws1.ncols)

练习

  1. 将所有csv文件中数据集合并为一个文件
import csv
resold_apartment= ['双流','大邑','崇州','彭州','成华','天府新区','天府新区南区','新津','新都','武侯','温江','简阳','蒲江','邛崃','郫都','都江堰','金堂','金牛','锦江','青白江','青羊','高新','高新西','龙泉驿']
f2 = open('./成都链家二手房数据/成都二手房信息.csv','w',encoding='utf-8',newline='')
mywrite = csv.writer(f2)
data1 = ['行政区', '标题', '小区', '街道', '户型', '面积', '装修', '单价', '总价']
mywrite.writerow(data1)
print(mywrite)
for i in resold_apartment:f1 = open(f'./成都链家二手房数据/成都{i}二手房信息.csv', 'r', encoding='utf-8')new_nuber = csv.reader(f1)data = list(new_nuber)# print(data)f1.close()for info in data[1:]:# print(info)mywrite.writerow(info)
f2.close()
  1. 随机生成一个有100人班级的语数外三科成绩的文件((使用csv或者xlsx均可)。2.初始文件包含四列:学号、语文、数学、英语。3.学生姓名使用学号python001、python002、…代替。3.学生姓名使用学号python001、python002、…代替。4.文件生成完毕以后计算每科最高分、最低分,并找出分值对应学生(允许一个分值有多个学生)5.新增—列:总分(每个学生的总分)6.找出排名第一的学生和倒数一名的学生。7.第四条和第六条找出的结果保存到列表中。
import openpyxl
import random# 创建文件
wb = openpyxl.Workbook()
# 新建工作表
wb.create_sheet('学生成绩')
# 添加列
cols = ['姓名', '语文', '数学', '英语']
for i in range(len(cols)):wb['学生成绩'].cell(1, i + 1).value = cols[i]
# 写入学生学号数据
for i in range(1, 101):wb['学生成绩'].cell(i + 1, 1).value = 'python{:0>3}'.format(i)
# 生成成绩写入表格
for i in range(2, 102):for j in range(2, 5):wb['学生成绩'].cell(i, j).value = random.randint(0, 100)
# 保存文件
wb.save('学生成绩.xlsx')
# 加载源文件
wb = openpyxl.load_workbook('学生成绩.xlsx')
# 找工作表
# 对行号遍历
list1 = []
list2 = []
list3 = []
for i in range(2, 102):list1.append(wb['学生成绩'].cell(i, 2).value)list2.append(wb['学生成绩'].cell(i, 3).value)list3.append(wb['学生成绩'].cell(i, 4).value)a = [wb['学生成绩'].cell(i, 1).value for i in range(2, 102) if wb['学生成绩'].cell(i, 2).value == max(list1)]
b = [wb['学生成绩'].cell(i, 1).value for i in range(2, 102) if wb['学生成绩'].cell(i, 2).value == min(list1)]
c = [wb['学生成绩'].cell(i, 1).value for i in range(2, 102) if wb['学生成绩'].cell(i, 3).value == max(list2)]
d = [wb['学生成绩'].cell(i, 1).value for i in range(2, 102) if wb['学生成绩'].cell(i, 3).value == min(list2)]
e = [wb['学生成绩'].cell(i, 1).value for i in range(2, 102) if wb['学生成绩'].cell(i, 4).value == max(list3)]
f = [wb['学生成绩'].cell(i, 1).value for i in range(2, 102) if wb['学生成绩'].cell(i, 4).value == min(list3)]
print(f'语文成绩最高分对应学生:{a},语文成绩最低分对应学生:{b}')
print(f'数学成绩最高分对应学生:{c},数学成绩最低分对应学生:{d}')
print(f'英语成绩最高分对应学生:{e},英语成绩最低分对应学生:{f}')# 添加总分
wb['学生成绩'].cell(1, 5).value = '总分'
max_ = 0
min_ = 300
# 计算总分
for i in range(2, 102):wb['学生成绩'].cell(i, 5).value = \wb['学生成绩'].cell(i, 2).value + wb['学生成绩'].cell(i, 3).value + wb['学生成绩'].cell(i, 4).valueif wb['学生成绩'].cell(i, 5).value > max_:max_ = wb['学生成绩'].cell(i, 5).valueif wb['学生成绩'].cell(i, 5).value < min_:min_ = wb['学生成绩'].cell(i, 5).value# 寻找排名第一和倒数第一的学生
first_stu = []
last_stu = []
for i in range(2, 102):if wb['学生成绩'].cell(i, 5).value == max_:first_stu.append(wb['学生成绩'].cell(i, 1).value)if wb['学生成绩'].cell(i, 5).value == min_:last_stu.append(wb['学生成绩'].cell(i, 1).value)print(f'第一名学生为:{first_stu}')
print(f'倒数第一的学生为:{last_stu}')
# 保存关闭
wb.save('学生成绩.xlsx')

python中的文件读写操作相关推荐

  1. python 中的文件读写操作 and 例题

    一.概述 在文件的读写操作中,python是相对容易学的,python对文件进行操作只需要使用open()创建一个file流对象,用这个对象对文件进行读和写操作.open()有两个参数,一个是url是 ...

  2. Python中有关文件的操作

    Python中有关文件的操作 1.文件路径的书写 import os #这里返回的值是字符串 path = os.path.join(root_dir,file_dir) 2.列出文件夹中的文件 im ...

  3. Python中的文件读写

    文件基础知识 计算机有两种存储设备-内存储器和外存储器,虽然它们都是用来保存数据的,但无论外形还是特点都差别巨大.我们常见的硬盘属于外存储 器,而内存条就属于内存储器. (内存条)内存储器 VS (硬 ...

  4. Android中的文件读写操作

    在android开发中文件操作使用的其实还是比较高频的,之前我遇到这种需求都随便写写,对此没有一个比较全面的认识,所以想借这篇文章来梳理一遍. 由于需要读写文件,这包含了读写外部sd card的文件, ...

  5. Python中的文件IO操作(读写文件、追加文件)

    [注]:下述操作过程是结合多种网络方法,然后自己实践的结果.写在这里,主要目的是加深记忆,也希望能帮助后来者 Python中文件的读写包含三个步骤:打开文件,读/写文件,关闭文件. 文件打开之后必须关 ...

  6. cfile清空文件内容_体育老师学编程(第11天)python常用的文件读写操作

    学习内容:python文件处理 一.什么是文件: 前边学习了计算机的存储设备分为内存和硬盘两种,内存容量小,断电就丢失,我们若想长期存储一段内容,就需要存到硬盘中,那么存入的方式就是以文件形式存入的. ...

  7. C++中的文件读写操作(1)

    #include "iostream" #include "fstream" #include "vector" #include &quo ...

  8. python中对文件的操作_Python对文件操作知识

    这篇文章主要介绍了Python对文件操作知识汇总的相关资料,非常具有参考借鉴价值,需要的朋友可以参考下 打开文件 操作文件 1打开文件时,需要指定文件路径和打开方式 打开方式: r:只读 w:只写 a ...

  9. python高级语法 - 文件读写操作及其持久化

    文件 长久保存信息的一种数据信息集合(持久化) 常用操作 打开关闭(文件一旦打开,需要关闭操作) 读写内容 查找 open 函数 open函数负责打开文件,带有很多参数 第一个参数:必须有,文件的路径 ...

最新文章

  1. python和R对dataframe的单列数据进行统计:value_counts、table、unique、nunique、min、max、mean、sort、length、var、quantile、
  2. Linux chmod命令修改文件与文件夹权限命令代码
  3. python详细安装教程linux-Python 环境安装步骤
  4. 致Go学习者, 该跟大佬学习做项目了
  5. linux终端提示符含义,Linux:终端提示符 (prompt) 不如期生效原因
  6. SPOJ COT2 (树上莫队)
  7. try-catch语句
  8. 一篇文章了解数据库系统
  9. 模拟电子技术基础_常用半导体器件
  10. 手机问卷调查报告 html,关于手机的问卷调查调研报告.doc
  11. 这就是最适合程序员的云笔记?
  12. css 实现div内显示一行、两行或三行,超出部分用省略号显示
  13. (pywin32)解决keybd_event在游戏中失效
  14. 用 TensorFlow.js 在浏览器中训练一个计算机视觉模型(手写数字分类器)
  15. Python改变图片像素值
  16. ITE EC代码解析1
  17. python - 密码加密与解密
  18. python面板数据模型操作步骤_任何有效的方法来建立面板数据的回归模型?
  19. 盘点 Redis 常用的 10 个小技巧
  20. elementui表格数据过滤

热门文章

  1. 腾讯云GPU云服务器计算型和渲染型分别适用于哪些场景?
  2. Matlab函数:filter(1 维数字滤波器)
  3. Idea快捷键(常用部分)(Windows)
  4. 学习笔记(二):WiFi-无接触感知与菲涅尔区
  5. 秒杀常见问题解决思路
  6. 学习分享:fork函数与vfork函数的区别
  7. 编译原理陈火旺版第五章课后题答案
  8. Python网络爬虫抓取彩票排列3全部历史数据
  9. 计算机用友三级牛嘛,​增值税三级明细科目有哪些
  10. pdf417条码解码(上)——图像的预处理