This is the case, there is a study of the elder sister Python, asked me how to deal with QQ chat record, then said the use of regular, nor to write, now idle (by the Ajax Abuse cry ...) Put it first) and write it briefly.
Goal, statistics in the last one months, QQ group in a day 24 time period of the number of speakers.
STEP1: Get QQ chat record
This is a simple no-brain ... Export the message record directly. See here for details. When exporting, remember to save it in txt format and place it in the same folder as the Python file (just for convenience).
STEP2: Start the code
Environment: Python3+pycharm+xlsxwriter
On the code:
Import Reimport xlsxwriter# gets 24 time periods----->time_list# used to fragment after time time_list = []for i in Range (0,24): # Here's the judgment used to turn a similar ' 8 ' To ' 08 ' to facilitate and export data matching if i < 10:i = ' 0 ' +str (i) else:i = str (i) time_list.append (i) # Create an Excel table and set the parameter Number workbook = Xlsxwriter. Workbook ('here is the name of the table. xlsx ') worksheet = Workbook.add_worksheet () worksheet.set_column (' A:a ', 5) worksheet.set_column (' b:b ', 10) # define a function, Count each time period # times is a regular match to the "hour" data, in a list def everytime (i): num = 0 for time in times:if time = = I: num + = 1 print (i, '---> ', num) # Complete, write the data with the Write parameter: row, column, Data worksheet.write (int (i), 0, str (i) + "point") workshe Et.write (int (i), 1, NUM) # Open file, start matching "hours" data and Count save # Here remember to convert the code to Utf-8with open ("here is the TXT file name ", encoding= ' Utf-8 ') as F:data = F.read () # For example 20:50:52, to match the one of the PA = Re.compile (r "(\d\d): \d\d:\d\d") times = R E.findall (PA, data) for I in Time_list:everytime (i) # Remember to close the workbook workbook.close () print ("Finish, go to the folder and see the new . xlsx File Bar ")
Code comparison Ugly ... Please correct me.
The output is as follows:
After that, it's going to be visualized, well, Python's matplotlib is too big for me, so use Excel ...
Step3:excel Visualization
Visualization, well, in fact, is simply a line chart, 23333. For the line chart easy to observe, you can adjust the time before and after the order.
I come in this order: (the small amount of morning data on both sides)
At last:
This is the addition of the programming group, I would like to guess the figure bar, not responsible for guessing that ....
7 points to get up to work, the more near noon work more excited, noon after dinner to a nap, began an afternoon sleepy code work, finally boil to work, after dinner began a happy ... Yes or the code.
Diligent program staff, learning to 23 points, gradually a bit empty, well, go to bed, after all, tomorrow to work, but also to the code ... (This is a joke. 2333333)
Do something interesting with python--Analyze QQ chat History