用QPython讀取手機(jī)短信并保存為csv文檔

1.QPython簡介

Qpython是一個(gè)安卓手機(jī)應(yīng)用,可以編輯運(yùn)行Python代碼,在官網(wǎng)或者各大應(yīng)用市場都可以下載。

目前QPython主要有三個(gè)版本,QPython,QPython3,QPython3.6,三者略有不同。

  • QPython是基于Python2的,可安裝的Python包相對多一些。除了純Python模塊,還有些官方編譯好的可以下載,比較有用的像Numpy,Matplotlib等。

注:建議下載老版本的,新版本在我的安卓6.0手機(jī)上出現(xiàn)了各種模塊無法安裝的神奇現(xiàn)象。

  • QPython3,QPython3.6都是基于Python3的,前者是Python3.2版本,后者3.6。這倆能安裝的模塊較少,前者還可以用個(gè)Numpy,后者幾乎啥都裝不了。

  • QPython中有專門的安卓相關(guān)模塊。在QPython和QPython3.6中都存在于androidhelper模塊中,一般可以用from androidhelper import Android導(dǎo)入。QPython3中還存在sl4a模塊,可以通過from sl4a import Android使用。

  • 官方還推出了AIPY這個(gè)app,想要聯(lián)合QPython做機(jī)器學(xué)習(xí)庫,不過我這邊啥都用不了。另外另一個(gè)安卓app Pydroid上基本也都有,就不說了。

2.用QPython讀取手機(jī)短信并保存

這里只用到androidhelper.Android中短信相關(guān)函數(shù)。

之前沒想過手機(jī)的短信都是怎么存儲(chǔ)的,這次倒是略微了解了一點(diǎn)。

2.1相關(guān)代碼

相關(guān)代碼和解釋如下:

from androidhelper import Android
import csv

d = Android()
#發(fā)短信,未成功,qpython3采用sl4a成功
d.smsSend('10086', 'test')
#獲取短信數(shù)目
c = d.smsGetMessageCount(False)  #False表示讀取所有短信,True讀取未讀短信
print(c)
#獲取短信id
ids = d.smsGetMessageIds(False)
print(ids)
#獲取短信具體內(nèi)容,默認(rèn)讀取收件箱內(nèi)容,發(fā)送的信息使用參數(shù)'sent'
sms_data=d.smsGetMessages(False, 'inbox')
print(sms_data)
#將所有短信保存到csv文件中
names=['_id', 'address', 'date', 'body', 'read', 'person', 'status', 'type']
with open('sms.csv','w') as f:
    f_scv = csv.DictWriter(f, names)
    f_scv.writeheader()
    f_scv.writerows(sms_data)
    print('done')

2.2短信存儲(chǔ)信息

用這個(gè)程序可以獲取到短信存儲(chǔ)的一些信息,最終保存的部分主要是在names數(shù)組中。

names=['_id','address','date','body','read','person','status','type']

  • _id是每條短信的原始id,有些數(shù)字不連續(xù),估計(jì)是因?yàn)椴糠侄绦疟粍h除了
  • address就是對方手機(jī)號
  • date就是短信息的時(shí)間戳
  • body是短信具體內(nèi)容
  • read表示已讀未讀,1為已讀,估計(jì)0是未讀。
  • person不知道是啥,收件箱sent時(shí)無該項(xiàng)。
  • status不知道是啥
  • type,發(fā)信息還是收信息,1為收,2為發(fā)

3.參考資料

Qpython官網(wǎng)有androidhelper模塊的所有api借口介紹,除了本文中的短信模塊,還有一些算是有趣或者有用的,比如對話框等模塊。

官方鏈接見下:
qpython-androidhelper-apis

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容