鱼C论坛

 找回密码
 立即注册
查看: 1569|回复: 3

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

[复制链接]
发表于 2021-5-4 17:12:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 cc1236 于 2021-5-4 17:42 编辑
  1. import datetime
  2. from scipy.io import savemat

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

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

  9.     # 转为日期格式
  10.     datestart = datetime.datetime.strptime(datestart, '%Y-%m-%d')
  11.     dateend = datetime.datetime.strptime(dateend, '%Y-%m-%d')
  12.     date_list = [datestart.strftime('%Y-%m-%d')]
  13.     while datestart < dateend:
  14.         # 日期叠加一天
  15.         datestart += datetime.timedelta(days=+1)
  16.         # 日期转字符串存入列表
  17.         date_list.append(datestart.strftime('%Y-%m-%d'))
  18.     return date_list
复制代码


date_list就是我说的日期辅助表,
for date in date_list
从这里获取不到
第二段
  1. import jieba
  2. import re,string
  3. from zhon.hanzi import punctuation
  4. import os
  5. import csv


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

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

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

  32.             for plttuple in pltLists:
  33.                 saveLine = []
  34.                 saveLine.append(plttuple[0])
  35.                 saveLine.append('Chinese')
  36.                 saveLine.append(plttuple[1])
  37.                 saveLine.append(date)
  38.                 writer.writerow(saveLine)
复制代码


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-5-4 17:47:09 | 显示全部楼层
你的date_list是在函数create_assist_date中建立的,是属于create_assist_date的局部变量,外部是读取不了的。
另外你在第二段代码中没有调用create_assist_date函数,这是个用法错误。
有两种方法,一种是调用create_assist_date赋值给date_list:
  1. date_list=create_assist_date()    #参数根据需求加入,这个date_list其实不是函数里的date_list,只是把函数的返回值赋值给它
复制代码

第二种是先定义date_list,然后调用create_assist_date函数:
  1. date_list=[]
  2. create_assist_date()    #参数根据需求加入,函数中无需返回
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-4 18:01:37 | 显示全部楼层
txxcat 发表于 2021-5-4 17:47
你的date_list是在函数create_assist_date中建立的,是属于create_assist_date的局部变量,外部是读取不了 ...

我是先想生成日期格式表,
再用第二段程序利用这个表筛选
打开CSV文件并清洗数据
思路如下:

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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-4 18:02:19 | 显示全部楼层
txxcat 发表于 2021-5-4 17:47
你的date_list是在函数create_assist_date中建立的,是属于create_assist_date的局部变量,外部是读取不了 ...

原链接:https://blog.csdn.net/qq_36178962/article/details/108125794
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 21:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表