python获取藏头诗_3_创作诗词

# coding=utf-8
import re
import linecache
import random
import time


hs = 649620  # 总数
name = input("输入要创作的五言顶头诗:")
len_n = input("藏于第几个字(请输入1-5,也可尝试7-11):")
len_n = int(len_n)
len_n = len_n-1
name_sz = []  # 用于存放名字
for i2 in name:
    name_sz.append(i2)
print(name_sz)
name_long = len(name_sz)
print(name_long)
for num in range(name_long):
    linecache.clearcache()
    i = name_sz[num]
    print(i+":正在查找.......")
    sc_lien = 1  # 读取行数
    n_err = 0  # 找不到次数
    for num2 in range(hs):
        str_sc = linecache.getline("sc2.txt", sc_lien)
        try:
            a1 = re.search(i, str_sc).span()
            with open("sc/"+i+".txt", "a", encoding="UTF-8") as f: #使用utf-8编码防止错误写入
                if a1[0] == len_n:
                    # print(str(sc_lien) + str_sc)
                    f.write(str_sc)
                else:
                    n_err += 1
        except:
            n_err += 1
        sc_lien += 1
    # print(i+"一共找到"+str(hs-n_err))
    linecache.clearcache()
print("正在创作")
time.sleep(3)

for end_tim in range(3):
    print("第"+str(end_tim+1)+"首")
    for mun_1 in range(name_long):
        try:
            C_yi = name_sz[mun_1]
            filename = "sc/"+C_yi+".txt"
            myfile = open(filename, encoding="UTF-8")
            lines = len(myfile.readlines())
            ran = random.randint(1, lines)-1
            myfile.close()
            linecache.clearcache()
            cy = linecache.getline(filename, ran)
            print(cy)
        except:
            print("翻遍天下名书也找不到这个字>>>")
time.sleep(300)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值