刚学python不久,这个小项目是学校留的作业,在这儿做一个记录吧。有的代码当时没留下来,就放截图了。
创建csv文件
结果:
将csv写入word
# 将csv文件写入word
import docx
import csv
file_path = 'D:\pycharm\PycharmProjects\pythonProject\data.csv'
with open(file_path, encoding='ISO-8859-1') as file_name: # 打开文件所在的位置
reader =csv.reader(file_name)
result = list(reader) # 存入列表
del result[0] # 如果你的标题是中文的话,result[0]会出现乱码,原因:'ISO-8859-1'
# str_convert = ''.join(result[0][:])
# print(str_convert)
a = (len(result[:][:]))
b = (len(result[0][:]))
doc = docx.Document() # 创建一个空的word
for i in range(a):
str_convert = ''.join(result[i][:]) # 将列表的内容写入字符串
str_num = ''.join(str_convert) # 创建一个总的字符串
doc.add_paragraph(str_num) # 写入word
print(str_num)
doc.save('D:\pycharm\PycharmProjects\pythonProject\csv.test.doc') # 保存word
结果:
将csv文件写入excel
from xlwt import *
import time
import csv
sCsvFileName='data.csv'
workbook=Workbook(encoding='utf-8')
worksheet=workbook.add_sheet('sheet1')
with open(sCsvFileName,newline='') as csvfile:
rows=csv.reader(csvfile)
print('========================================')
for iRow,row in enumerate(rows):
if iRow==1:
iCols=len(row)
for iCol in range(0,len(row)):
worksheet.write(iRow,iCol,','.join(row).split(',')[iCol])
sFileName='csv.data' + '.xls'
workbook.save(sFileName)
结果:
将csv文件写入ppt(列表形式)
import csv
import pptx
from pptx.util import Inches
pptFile = pptx.Presentation()
slide = pptFile.slides.add_slide(pptFile.slide_layouts[4])
sCsvFileName = 'chapter5.csv'
with open(sCsvFileName, newline='') as csvfile:
rows = csv.reader(csvfile) # csv
ss = [row for row in rows if row != []]
print('============================')
table = slide.shapes.add_table(rows=4, cols=3, left=Inches(1), top=Inches(2), width=Inches(8), height=Inches(4))
ii = -1
for row in table.table.rows:
jj = -1
ii = ii+1
for cell in row.cells:
jj = jj+1
cell.text_frame.text = str(ss[ii][jj])
docname = 'csv.chapter5' + '.pptx'
pptFile.save(docname)
结果:
对数据做统计分析
结果:
简单的可视化
因为我是为了完成作业做的,数据给的特别简单,可以自己创建数据csv,原理和我下面列的一样。
- 柱状图
# -*- coding:utf-8 -*-
import xlsxwriter
# 创建一个excel
workbook = xlsxwriter.Workbook("chart_column.xlsx")
# 创建一个sheet
worksheet = workbook.add_worksheet()
# 自定义样式,加粗
bold = workbook.add_format({'bold': 1})
# --------1、准备数据并写入excel---------------
headings = ['index', 'a_name', 'b_name']
data = [
['0', '1', '2'],
[1, 2, 3],
[3, 3, 4]
]
# 写入表头
worksheet.write_row('A1', headings, bold)
# 写入数据
worksheet.write_column('A2', data[0], bold)
worksheet.write_column('B2', data[1])
worksheet.write_column('C2', data[2])
# --------2、生成图表并插入到excel---------------
# 创建一个柱状图(column chart)
chart_col = workbook.add_chart({'type': 'column'})
# 配置第1个系列数据
chart_col.add_series({
# sheet1是默认的值
'name': '=Sheet1!$B$1',
'categories': '=Sheet1!$A$2:$A$4',
'values': '=Sheet1!$B$2:$B$4',
'fill': {'color': 'red', 'transparency': 30},
})
# 配置第2个系列数据
chart_col.add_series({
'name': '=Sheet1!$C$1',
'categories': '=Sheet1!$A$2:$A$4',
'values': '=Sheet1!$C$2:$C$4',
'fill': {'color': 'blue', 'transparency': 30},
})
# 设置图表的title 和 x,y轴信息
chart_col.set_title({'name': 'title'})
chart_col.set_x_axis({'name': 'x'})
chart_col.set_y_axis({'name': 'y'})
# 设置图表的风格
chart_col.set_style(1)
# 把图表插入到worksheet以及偏移
worksheet.insert_chart('A6', chart_col, {'x_offset': 25, 'y_offset': 10})
workbook.close()
结果:
- 饼状图
# -*- coding:utf-8 -*-
import xlsxwriter
# 创建一个excel
workbook = xlsxwriter.Workbook("chart_pie.xlsx")
# 创建一个sheet
worksheet = workbook.add_worksheet()
# 自定义样式,加粗
bold = workbook.add_format({'bold': 1})
# --------1、准备数据并写入excel---------------
# 向excel中写入数据,建立图标时要用到
data = [
['index', 'a_name', 'b_name'],
[3, 6, 10],
]
# 写入数据
worksheet.write_row('A1', data[0], bold)
worksheet.write_row('A2', data[1])
# --------2、生成图表并插入到excel---------------
# 创建一个柱状图(pie chart)
chart_col = workbook.add_chart({'type': 'pie'})
# 配置第一个系列数据
chart_col.add_series({
'name': 'Bug Counts',
'categories': '=Sheet1!$A$1:$C$1',
'values': '=Sheet1!$A$2:$C$2',
'points': [
{'fill': {'color': '#BC3FBC'}},
{'fill': {'color': '#0DAD48'}},
{'fill': {'color': '#D8B31C'}},
{'fill': {'color': 'gray'}},
],
})
# 设置图表的title 和 x,y轴信息
chart_col.set_title({'name': 'Bug Counts'})
# 设置图表的风格,excel内置48种图表样式
chart_col.set_style(25)
# 把图表插入到worksheet以及坐标位置
worksheet.insert_chart('B3', chart_col, {'x_offset': 25, 'y_offset': 10})
workbook.close()
结果:
- 折线图
# -*- coding:utf-8 -*-
import xlsxwriter
# 创建一个excel
workbook = xlsxwriter.Workbook("chart_line.xlsx")
# 创建一个sheet
worksheet = workbook.add_worksheet()
# 自定义样式,加粗
bold = workbook.add_format({'bold': 1})
# --------1、准备数据并写入excel---------------
# 向excel中写入数据,建立图标时要用到
headings = ['Index', 'name_a', 'name_b']
data = [
['0', '1', '2'],
[1, 2, 3],
[3, 3, 4],
]
# 写入表头
worksheet.write_row('A1', headings, bold)
# 写入数据
worksheet.write_column('A2', data[0])
worksheet.write_column('B2', data[1])
worksheet.write_column('C2', data[2])
# --------2、生成图表并插入到excel---------------
# 创建一个柱状图(line chart)
chart_col = workbook.add_chart({'type': 'line'})
# 配置第1个系列数据
chart_col.add_series({
# 这里的Sheet1是默认的值
'name': '=Sheet1!$B$1',
'categories': '=Sheet1!$A$2:$A$4',
'values': '=Sheet1!$B$2:$B$4',
'line': {'color': 'red'},
})
# 配置第2个系列数据
chart_col.add_series({
'name': '=Sheet1!$C$1',
'categories': '=Sheet1!$A$2:$A$4',
'values': '=Sheet1!$C$2:$C$4',
'line': {'color': 'yellow'},
})
# 设置图表的title 和 x,y轴信息
chart_col.set_title({'name': 'The dll return Analysis'})
chart_col.set_x_axis({'name': 'return value'})
chart_col.set_y_axis({'name': 'count'})
# 设置图表的风格
chart_col.set_style(1)
# 把图表插入到worksheet并设置偏移
worksheet.insert_chart('A6', chart_col, {'x_offset': 25, 'y_offset': 10})
# 关闭文件
workbook.close()
结果: