<!-- wp:paragraph -->
<p>在写这个博客的时候,这个故事已经过去挺久了</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>但是我还是决定写一篇博客记录这件事情</p>
<!-- /wp:paragraph -->
<!-- wp:image {"sizeSlug":"large"} -->
<figure class="wp-block-image size-large"><figcaption>图片取自CSDN</figcaption></figure>
<!-- /wp:image -->
<!-- wp:paragraph -->
<p>经过几个CSDN热心网友的转发以及一些机缘巧合,我看到了这个初三学生的求助</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>而内容是制作一个可以统计时间和金额的折线图的小工具</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>反正闲着也是闲着,我就准备开始入手</p>
<!-- /wp:paragraph -->
<!-- wp:spacer -->
<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->
<!-- wp:heading {"level":3,"textColor":"vivid-cyan-blue"} -->
<h3 class="has-vivid-cyan-blue-color has-text-color">1.整理思路</h3>
<!-- /wp:heading -->
<!-- wp:paragraph -->
<p>首先,整理下制作的思路</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>问题中的自动连线生成折线图,让我想到了Python中,Pyecharts模块的Line</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>于是决定,用Python来完成这次制作</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>以及问题中,每天输入一个数据,代表了我需要做一个存储数据的容器</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>先从理论上建立工具使用的流程:</p>
<!-- /wp:paragraph -->
<!-- wp:image {"sizeSlug":"large"} -->
<figure class="wp-block-image size-large"><figcaption>图像为原创</figcaption></figure>
<!-- /wp:image -->
<!-- wp:spacer -->
<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->
<!-- wp:heading {"level":3} -->
<h3>2.构建工具框架</h3>
<!-- /wp:heading -->
<!-- wp:paragraph -->
<p>从整理的框架上来看,制作这个工具需要用到一下几个模块</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>1. Pyecharts模块中的Line功能 构图(程序的主体)</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>2.os模块 数据文件的查询以及创建</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>3.time模块 部分地方的停顿</p>
<!-- /wp:paragraph -->
<!-- wp:spacer -->
<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->
<!-- wp:paragraph -->
<p>首先,导入3个必要的模块</p>
<!-- /wp:paragraph -->
<!-- wp:code -->
from pyecharts.charts import Line
import time
import os
<!-- /wp:code -->
<!-- wp:paragraph -->
<p>然后,分别创建3个函数,来负责工具需要的3个功能</p>
<!-- /wp:paragraph -->
<!-- wp:code -->
def programme(): #数据库的查询以及创建
def programme2(): #必要信息的输入
def programme3(): #折线图的制作
(懒得给函数想名字了,随便取个凑合着看吧)
<!-- /wp:code -->
<!-- wp:paragraph -->
<p>至此,框架以及搭建好了</p>
<!-- /wp:paragraph -->
<!-- wp:spacer -->
<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->
<!-- wp:heading {"level":3} -->
<h3>3.完善小工具的各个功能</h3>
<!-- /wp:heading -->
<!-- wp:paragraph -->
<p>先从第一个模块开始</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph {"textColor":"vivid-cyan-blue"} -->
<p class="has-text-color has-vivid-cyan-blue-color">数据库的查询以及创建:</p>
<!-- /wp:paragraph -->
<!-- wp:code -->
def programme():
try:
os.mkdir('data')
print('发现暂没数据目录文件')
print('正在创建...')
time.sleep(2)
print('创建完毕')
except:
pass
<!-- /wp:code -->
<!-- wp:paragraph -->
<p>直接利用try...except...函数,尝试创建文件夹</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>减少了查找是否有文件夹的步骤</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>然后下下一个模块</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph {"textColor":"vivid-cyan-blue"} -->
<p class="has-text-color has-vivid-cyan-blue-color">必要信息的输入:</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>这里我们大胆的再进行添加元素</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>如果一个图标画完了,需要构造第二个图标</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>那我们还需要写一个删除数据文件的命令</p>
<!-- /wp:paragraph -->
<!-- wp:code -->
def programme2():
print('输入1:添加新行情')
print('输入2:清空行情')
try:
b = int(input('现在,请你输入:'))
except:
b = 999999 #这里随便输入一个不包括1和2的数即可,只是为了防止使用者随便输入
#添加数据
if b == 1:
print('请输入记录时间和数值。')
Time = input('现在,请你输入时间:') + 'n'
dat = input('现在,请你输入数值:')
try:
int(dat)
data = dat + 'n'
print('正在记录,请稍等。。。')
Times = open('data/times.ini','a')
Times.write(Time)
Times.close()
datas = open('data/datas.ini','a')
datas.write(data)
datas.close()
except:
print('你输入的数值有问题,请输入数字')
print('请在3秒后重新输入...')
time.sleep(3)
#清空数据
elif b == 2:
print('正在清空数据,请稍后...')
if(os.path.exists(dirPath+"times.ini")) and (os.path.exists(dirPath+"datas.ini")):
os.remove(dirPath+"times.ini")
os.remove(dirPath+"datas.ini")
time.sleep(3)
print('清空完毕')
time.sleep(3)
else:
print('没有可以清空的数据')
else:
pass
<!-- /wp:code -->
<!-- wp:paragraph -->
<p>至此,3个模块已经写好了2个,我们继续完成最后一个模块</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph {"textColor":"vivid-cyan-blue"} -->
<p class="has-text-color has-vivid-cyan-blue-color">折线图的制作:</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>折线图制作的时候,也需要查询是否有数据文件</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>如果没有数据文件,直接开始制作,制作的过程中将会出错</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>所以这里我们用到os模块的path路径查询</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>已经制作折线图时,金额的大小必须要数字</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>还需要要求输入的内容为数字</p>
<!-- /wp:paragraph -->
<!-- wp:code -->
def programme3():
#查询数据是否存在
print('正在查询数据...')
time.sleep(2)
if (os.path.exists(dirPath+"times.ini")) and (os.path.exists(dirPath+"datas.ini")):
timelist = []
dataslist = []
with open(dirPath + 'times.ini','r') as file:
number = 0
while True:
number += 1
line = file.readline()
if line == '':
break
timelist.append(line)
with open(dirPath + 'datas.ini','r') as file:
number = 0
while True:
number += 1
line = file.readline()
if line == '':
break
dataslist.append(line)
print('即将开始制作表格...')
time.sleep(2)
print('正在制作表格...')
line = Line()
line.add_xaxis(timelist)
line.add_yaxis("销量",dataslist)
line.render()
if (os.path.exists("index.html")):
print('查询到原有表格,正在删除...')
time.sleep(1)
os.remove('index.html')
print('删除完毕...')
else:
pass
os.rename('render.html', 'index.html')
print('表格制作完毕...')
print('请在目录文件中,index.html处查看')
time.sleep(2)
#数据不存在,运行失败
else:
print('没有数据,请输入数据后再进行制作')
time.sleep(3)
<!-- /wp:code -->
<!-- wp:paragraph -->
<p>好的,工具需要的3个函数,都已经制造完毕</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>最后就只需要构建一个索引,把3个函数连起来</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>工具的制作就完成了</p>
<!-- /wp:paragraph -->
<!-- wp:heading -->
<h2>4.索引制作</h2>
<!-- /wp:heading -->
<!-- wp:paragraph -->
<p>既然写了3个函数,小编也准备把索引,分成搜集数据和图标制作两块</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>废话不多说,上代码</p>
<!-- /wp:paragraph -->
<!-- wp:code -->
#索引
while True:
programme()
print('------------------------------')
print('行情记录工具')
print('------------------------------')
print('输入1:行情修改')
print('输入2:行情表查询')
print('输入3,退出程序')
try:
a = int(input('现在,请你输入:'))
except:
a = 4
#程序开始
if a == 1:
programme2()
elif a == 2:
programme3()
elif a == 3:
print('即将退出程序')
time.sleep(3)
break
else:
closewin += 1
if closewin == 2:#乱进行使用,程序将关闭
print('程序关闭!')
time.sleep(3)
break
else:
print('抱歉,请按照规则输入,否则程序将关闭')
print('请在3秒后重试')
time.sleep(3)
<!-- /wp:code -->
<!-- wp:paragraph -->
<p>嘿嘿,小编在代码里,悄悄的增加了防止熊孩子在索引里随便乱输入代码</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>如果熊孩子不按规则使用,,,</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>那么,,,程序就会自己关闭啦</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph {"backgroundColor":"vivid-green-cyan"} -->
<p class="has-background has-vivid-green-cyan-background-color">最后,附上工具源码的链接: 下载地址</p>
<!-- /wp:paragraph -->
版权属于:神奇
本文链接:http://magic921.com/110.html
转载时须注明出处及本声明