我目前正在尝试计算聊天记录中日期的次数,例如我正在阅读的文件可能如下所示:
*username* (mm/dd/yyyy hh:mm:ss): *message here*
但是我需要将日期从我目前视为一个的时间开始分割。我目前正在努力解决我的问题所以任何帮助表示赞赏。下面是我正在使用的一些示例代码,用于尝试获取日期计数。我目前正在使用一个计数器,但我想知道是否有其他方法来计算日期。
filename = tkFileDialog.askopenfile(filetypes=(("Text files", "*.txt") ,))
mtxtr = filename.read()
date = []
number = []
occurences = Counter(date)
mtxtformat = mtxtr.split("\r\n")
print 'The Dates in the chat are as follows'
print "--------------------------------------------"
for mtxtf in mtxtformat:
participant = mtxtf.split("(")[0]
date = mtxtf.split("(")[-1]
message = date.split(")")[0]
date.append(date1.strip())
for item in date:
if item not in number:
number.append(item)
for item in number:
occurences = date.count(item)
print("Date Occurences " + " is: " + str(occurences))
答案 0 :(得分:0)
最简单的方法是使用正则表达式并记录日志文件中的日期模式。它也会更快。
答案 1 :(得分:0)
如果您知道日期和时间将在消息开头的括号中括起来(即在包含日期和时间之前没有括号(...):
):
*username* (mm/dd/yyyy hh:mm:ss): *message here*
然后你可以根据parens提取:
import re
...
parens = re.compile(r'\((.+)\)')
for mtxtf in mtxtformat:
match = parens.search(mtxtf)
date.append(match.group(1).split(' ')[0])
...
注意:如果消息本身包含parens,则可能不仅仅需要匹配(mm / dd / yyyy hh:mm:ss)。假设在您的日期时间信息之前没有包含在parens中的信息(对于当前行),执行match.group(1).split(' ')[0]
仍会提供您正在寻找的信息。
注意2:理想情况下,如果当前行不包含有用信息,请将其包含在try-except中以继续到下一行。