前陣子看了這篇解析 Line 對話的文章 讓我對解析 Line 匯出的純文字聊天紀錄有點概念,後來一時興起想計算我和朋友總共聊了多少訊息,寫了一個很簡單的小程式。
真的超簡單 就這樣幾行,主要是利用 Regular Expression 簡單比對就可以得出來。
1
2
3
4
5
6
7
8
|
import re
f = open("data.txt","r",encoding="utf-8")
line = f.read()
f.close()
arr = re.findall(r"[0-9]+:[0-9]+\s", line)
print(len(arr))
|
接著我把它改成可以利用命令列傳遞檔名參數,這樣我就不用每次都打開程式碼修改。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
import re
import sys
if(len(sys.argv) != 2):
exit("Arguments error!")
filename = sys.argv[1]
line = []
try:
f = open(filename,"r",encoding="utf-8")
line = f.read()
f.close()
except FileNotFoundError as identifier:
print(str(identifier))
finally:
pass
arr = re.findall(r"[0-9]+:[0-9]+\s", line)
print(len(arr))
|
但是我真的很懶,想要直接使用,也想說可以給更多人用,所以利用 pyinstaller 封裝成 EXE 檔哈哈哈哈哈。
Line-counter 檔案下載
使用說明
以 IPhone IOS 13 為例
首先到聊天室中點選右上角的功能選單,三條線的那個
再點擊右上角的齒輪進入設定
選擇傳送聊天紀錄
可以存到 Keep 再用電腦版下載或是存到雲端硬碟中,我個人喜歡轉傳給對話機器人之類的,這樣可以直接從對話紀錄中下載文字檔
下載之後會看到長這樣的檔案,裡面有純文字的聊天紀錄
接著啟動命令提示字元到該目錄下,執行指令
1
|
line-counter.exe "[LINE] 與LINE Notify的聊天.txt"
|
Enter 後就會看到對話總數了
因為 Line 目前沒有提供訊息數的 API,只能用這種方式計算,其實也可以用 TK 做個簡單的 GUI,但想想就這一個功能也沒有必要,所以就維持 CLI 模式哈哈哈,如果有人想自行打包的話原始碼就在上面,自取囉~
文章作者
oxygen
上次更新
2019-12-20
授權條款
Copyright © 2017-2024 oxygen. All rights reserved.