专栏首页杨建荣的学习笔记让你的运维系统充满“诗意”

让你的运维系统充满“诗意”

在过年的那些日子,每天中午都会陪着孩子看会《诗词大会》,突然发现这个节目还蛮有意思。一些难以言传的情感或者意境,通过诗词用几个字就能传神的表达出来。

为此我借着给孩子充电的理由,给自己买了本《唐诗三百首》,每当孩子午睡的时候,我就坐在沙发旁边开始刷诗词,同样的唐诗三百首,对于不同的人来说能够引起共鸣的还是有那么四五十首,我的目光锁定在了关于孩子,关于童年相关的诗词方面,结果整本书扫下来竟然有几十首。

后来惰性冲昏了头脑,同时发现吃饭的时候看电视着实不合适,于是电视也看得少了。但是每每看到一些不错的诗句,还是会忍不住想记录下来。

断断续续中,有一次在GitHub上搜索Python相关的开源项目,结果我按照star排序,发现竟然有一个关于古诗词的开源项目,29k的star数,简直可以秒杀很多流行的开源项目。

于是乎我来了兴趣,想能不能找到一些可以借鉴的地方,项目里面的亮点是收集的资料数据,都按照JSON的格式梳理清楚了,关于唐诗的文件有58个,大小在近30M,但是对于数据的使用没有提供更多的信息。

我的需求是把一些唐诗能够随机输出,这样就能够看到更多更丰富的内容了,而且自己可以不断刷新重新获取。

于是我简单写了下面的Python程序。

# _#_ coding:utf-8 _*


import random
import os
import json
import sys
import opencc

POEM_MAX_LEN = 50
FILE_PATH = 'D:\chinese_poetry\chinese-poetry-master\json'

def get_poem(file_name):
fp = open(FILE_PATH + '\\' + file_name, 'r', encoding='UTF-8')
file_index = random.randint(0, 9)
data_content = json.loads(fp.read())[file_index]
fp.close()
poem_len = len(str(data_content["paragraphs"]))
if poem_len < POEM_MAX_LEN:
return '%s --%s' %(data_content["paragraphs"][0:],data_content["author"])
else:
return '%s --%s' %(data_content["paragraphs"][0:1],data_content["author"])


def get_file(file_path):
files = []
for x in os.listdir(file_path):
if x.startswith('poet.tang'):
files.append(x)
selected_files = random.sample(files, k=1)
print (selected_files)
for selected_file in selected_files:
#print(get_poem(selected_file))
converter = opencc.OpenCC(FILE_PATH + '\\' +selected_file)
print (converter)
converter.convert()  #

get_file(FILE_PATH)

很快就得到了想要的结果,这种情况下,我开始考虑把这些数据对接到我们的运维系统里面。对诗词的显示长度也做了截取,如果比较长,就截取前面2举,然后又开始忙碌一会,就接入进来了。

这样每次页面刷新我都能看到不同的诗词。

接下来就有很多的空间玩了,比如把原本的繁体转换为简体,比如可以考虑根据功能的差异显示不同的诗词等等。

可能会有很多人,这个有什么用,我做之前也觉得好像没有,但是接进来之后,我觉得这是一种新的体验,仅此而已。

本文分享自微信公众号 - 杨建荣的学习笔记(jianrong-notes),作者:杨建荣

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 关于查看dba_data_files的一个小问题(r7笔记第72天)

    今天帮一个朋友看一个pl/sql的问题,他已经钻到一个死胡同里列,可能明眼人一看就知道哪里有问题,但是当局者迷,所以我抽空看了一下这个pl/sql块。 pl/s...

    jeanron100
  • 分库分表的一些策略思考

    最近对一个业务进行了架构改造,主要是对已有的存储过程进行改写,使用SQL的方式来实现,同时对已有的业务处理做事务降维,在性能上的提升效果非常明显,本来通过存...

    jeanron100
  • MyCAT中的DDL

    今天开发同学提了一个需求,是希望对某一个时间范围的表做DDL操作,看起来好像复杂度也不高。

    jeanron100
  • 用Python爬取陈奕迅新歌《我们》10万条评论的新发现

    最近就有一部“怀旧”题材的电影,未播先火,那就是刘若英的处女作——《后来的我们》。青春,爱情,梦想,一直是“怀旧”题材的核心要素,虽然电影现在还未上映,但先行发...

    Python中文社区
  • Unity-UGUI无限循环列表

    简介: UGUI使用ScrollView、GridLayoutGroup实现无限循环列表,支持数据刷新,支持跳转,支持动态插入/删除

    祝你万事顺利
  • 通过小代码体验程序中BSS段和DATA段的差异

    BSS(Block Started by Symbol)用来存储未初始化的全局变量,值为0的通常会被编译器认为未初始化,属于静态内存分配区,不会占用程序文件空...

    一见
  • 九度OJ——1447最短路

    题目描述: 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!...

    AI那点小事
  • 机器学习中处理缺失值的7种方法

    现实世界中的数据往往有很多缺失值。丢失值的原因可能是数据损坏或未能记录数据。在数据集的预处理过程中,丢失数据的处理非常重要,因为许多机器学习算法不支持缺失值。

    磐创AI
  • Android 仿京东、拼多多商品分类页

    最近接了一个项目,要仿照京东写一个商品分类页,但需要滑动右边子分类,左边的主分类也跟着变换,写了个demo,需要的同学可以自取。 先放一个写完之后的样子: ?...

    非著名程序员
  • 算法不想学(二): 堆排序和top k

    SeanDepp

扫码关注云+社区

领取腾讯云代金券