概述
csv以及xlsx文件以及面向对象编程(OOP)
1、读取CSV文件
encoding='utf-8-sig'->有字节序标记
import csv
with open('resources/2018年北京积分落户数据.csv', 'r', encoding='utf-8-sig') as f:
# delimiter参数默认是逗号,可根据实际情况指定
# quotechar参数默认值是引号,但是如果值不是引号包围需要重新指定
reader = csv.reader(f, delimiter=',' ,quotechar='""')
# 通过遍历csvreader打印出csv文件
for read in reader:
print(read)
2、将数据写入CSV文件
import csv
# 在打开文件的时候在Open括号里面加newline='',可以防止在往里面加数据的时候出现空的列表
with open('resources/2018年北京积分落户数据.csv', 'a', encoding='utf-8-sig', newline='') as f:
writer = csv.writer(f)
# writer.writerow([....])
writer.writerows([[..],[..],[..]])
3、将CSV文件写入excel文件中
from openpyxl.styles import Alignment,Font
import csv
import openpyxl
#创建工作簿
workbook = openpyxl.Workbook()
# 设置工作表
sheet = workbook.active
# 添加表头
sheet.append(('编号', '姓名', '出生日期', '公司名称', '积分值'))
# 修改工作表的名字
sheet.title = '2021年北京积分数据'
# 打开CSV文件并将数据写入xlsx文件中
with open('resources/2021年北京积分数据.csv', 'r', encoding='utf-8-sig') as f:
reader = csv.reader(f)
for read in reader:
if read:
sheet.append(read)
sheet.column_dimension['D'].width = 20 # 单独设置一列的宽度
# 利用循环设置所有列的宽度
cols_width={
'A':10,
'B':10,
'C':10,
'D':20,
'E':10
}
for key in cols_width:
sheet.column_dimension[key].width=cols_width[key]
# 修改第一行的格式
for col in range(1, 6):
# bold是否加粗
sheet.cell(1, col).font=Font(name='华文行楷', size=22, bold=True)
# 改对齐方式
sheet.cell(1, col).alignment=Alignment(horizontal='center', vertical='center')
# 保存文件
workbook.save('2021年北京积分落户表.xlsx')
4、读取EXCEL文件
import openpyxl
wb = openpyxl.load_workbook('resources/口罩销售数据.xlsx')
# 获得工作表头
sheet = wb.worksheets[0]
for row in range(2, sheet.max_row+1):
for col in 'ABCDEF':
print(sheet[f'{col}{row}'].value, end='t')
print()
5、面向对象编程
用对象的概念将数据和操作数据的函数从逻辑上组织成一个整体;
在面向对象的世界里,我们要解决任何问题都是通过先创建对象,然后给对象发送消息
对象 - 接收消息的实体 ---》具体概念
1、一切皆为对象
2、每个对象都是独一无二的
3、对象都有静态特征(属性)-(都是名词)和动态特征(行为)-(都是动词)
4、对象都属于某个类
类 - 对象的蓝图和模板 ---》抽象概念
面向对象编程的步骤:
1、定义类
1、数据抽象:给出对象的静态特征 --》属性
2、行为对象:给出对象的动态特征 --》方法
2、创建对象
3、给对象发消息
class Rectangle:
# 初始化数据对象
def __init__(self, width, height):
self.width = width
self.height = height
# 行为抽象
# 方法就是发给对象的消息,第一个参数self就是接收信息的对象
def perimeter(self):
return (self.width + self.height)*2
def area(self):
return self.height * self.width
# 创建对象
rect = Rectangle(3, 4)
# 给对象发消息
print(f'矩形的周长是:{rect.perimeter()}')
print(f'矩形的面积是:{rect.area()}')
# 定义类描述数字时钟
import time
import os
class Clock:
def __init__(self, hour=0, minute=0, second=0, mode_12=False):
self.hour = hour
self.minute = minute
self.second = second
self.mode_12 = mode_12
def show(self):
if self.modef_12:
if self.hour < 12:
return f'{self.hour:0>2}:{self.minute:0>2}:{self.second:0>2}AM'
else:
hour = self.hour-12 if self.hour > 12 else self.hour
return f'{hour:0>2}:{self.minute:0>2}:{self.second:0>2}PM'
def run(self):
self.second += 1
if self.second == 60:
self.second = 0
self.minute += 1
if self.minute == 60:
self.mintue = 0
self.hour += 1
if self.hour == 24:
self.hour = 0
clock = Clock(mode_12=True)
# 重复执行知道程序结束
while True:
# 通过os模块的system函数调用系统命令
# cls清屏
os.system('cls')
print(clock.show())
time.sleep(1)
clock.run()
最后
以上就是开放小鸽子为你收集整理的csv以及xlsx文件以及面向对象编程(OOP)的全部内容,希望文章能够帮你解决csv以及xlsx文件以及面向对象编程(OOP)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复