qq_43035702
cc123685
采纳率0%
2021-05-04 18:43

日期辅助表怎么保存或者引用,才能让下面程序获取到

其实我是先用第一段程序生成日期格式表,
再用第二段程序利用这个表进行筛选

打开CSV文件并清洗数据
思路如下:

打开csv文件,获取保存的弹幕文本
清除无意义的标点符号,这里可以自己进行相应的设置
利用字典记录弹幕出现的次数
根据弹幕次数排序字典
每次写入次数最多的十条弹幕信息到另外的CSV文件中

 

  1.  
import datetime
from scipy.io import savemat

def create_assist_date(datestart=None, dateend=None):
    # 创建日期辅助表

    if datestart is None:
        datestart = '2016-01-01'
    if dateend is None:
        dateend = datetime.datetime.now().strftime('%Y-%m-%d')

    # 转为日期格式
    datestart = datetime.datetime.strptime(datestart, '%Y-%m-%d')
    dateend = datetime.datetime.strptime(dateend, '%Y-%m-%d')
    date_list = [datestart.strftime('%Y-%m-%d')]
    while datestart < dateend:
        # 日期叠加一天
        datestart += datetime.timedelta(days=+1)
        # 日期转字符串存入列表
        date_list.append(datestart.strftime('%Y-%m-%d'))
    return date_list

date_list就是我说的日期辅助表,

for date in date_list

从这里获取不到

2.

import jieba
import re,string
from zhon.hanzi import punctuation
import os
import csv


danmuCount = dict()
danmuNum = 0
punc = '~`!#$%^&*()_+-=|\';":/.,?><~·!@#¥%……&*()——+-=“:’;、。?》《{} oh1O○〇●哈'
with open('danmuku3.csv', 'a', encoding='utf-8') as savefile:
    writer = csv.writer(savefile)
    writer.writerow(['name','type','value','date'])
    for date in date_list:
        with open('csv3/danmutext_'+ date + '.csv', 'r', encoding='utf-8') as csvfile:
            print('---分析日期', date, '弹幕...\n')
            reader = csv.reader(csvfile)
            for line in reader:
                danmuNum = danmuNum + 1
                line = "".join(line)
                line = re.sub(r"[%s]+" % punc, "", line)
                # words_list = jieba.lcut(line)
                # for word in words_list:
                    # data[line] = data[line] + 1
                # line = line.lower()
                if len(line) >= 2 and len(line) <= 15:
                    if danmuCount.get(line):
                        danmuCount[line] = danmuCount[line] + 1
                    else:
                        danmuCount[line] = 1

        sortList = sorted(danmuCount.items(), key=lambda item:item[1], reverse=True)

        if len(sortList)>10:
            pltLists = sortList[:10]

            for plttuple in pltLists:
                saveLine = []
                saveLine.append(plttuple[0])
                saveLine.append('Chinese')
                saveLine.append(plttuple[1])
                saveLine.append(date)
                writer.writerow(saveLine)

原链接代码:https://blog.csdn.net/qq_36178962/article/details/108125794

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

7条回答

  • technologist_16 CSDN技术专家团-天际的海浪 3天前

    那你这个create_assist_date函数是在哪个模块中?先引入那个模块

    from 模块名 import create_assist_date

    再调用create_assist_date函数

        date_list = create_assist_date()

        for date in date_list:


     

    点赞 评论 复制链接分享
  • technologist_16 CSDN技术专家团-天际的海浪 3天前

    create_assist_date函数是在jieba模块中吗?是的话


     

        date_list = jieba.create_assist_date()

        for date in date_list:


     

    点赞 评论 复制链接分享
  • technologist_16 CSDN技术专家团-天际的海浪 3天前

    create_assist_date函数调用了没有

    点赞 评论 复制链接分享
  • technologist_24 CSDN技术专家团-黄老师 3天前

    你输出date_list看看里面有什么数据

    点赞 评论 复制链接分享
  • QA_Assistant 有问必答小助手 6小时前

    非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

    速戳参与调研>>>https://t.csdnimg.cn/Kf0y

    点赞 评论 复制链接分享
  • qq_36178962 madao10086+ 10小时前

    这个是我之前写的代码,没想到这个还有很多人看,当时就是随便写着玩,所以很多东西也不是很符合规范,这个代码是保存在实习公司的电脑上,现在离职了,源代码也没有备份。

    这个你就直接定义一下`create_assist_date`函数,然后使用这个函数生成一部分的日期:

    date_list = create_assist_date('2016-01-01', '2021-05-07')

    第一个参数就是生成日期列表的开始日期,第二个是生成日期列表的结束日期

    点赞 评论 复制链接分享
  • QA_Assistant 有问必答小助手 昨天

    您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

    如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

    ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

    点赞 评论 复制链接分享

相关推荐