2

残りのディスク容量をチェックし、容量が 500MB を下回ると、私が作成したメンテナンス ツールを使用するように通知する Kodi Media Center のサービス アドオンに取り組んでいます。別のサービスとして実行されます。Android で Python を使用して残りのディスク容量を確認する方法が必要です。statvfs() を使用してみましたが、OS X を含む Unix ライクなシステムでのみ互換性があるようです。つまり、Linux と OSX で statvfs を使用できます。Windows では wmi または ctypes を使用できますが、Android ではこれまでのところ何も使用できません。別のラッパーを作成してオペレーティング システムをチェックし、それぞれに最適な方法を使用できますが、これを実行できる Android 用の Python モジュールが見つかりません。助言がありますか?

これが私の既存のコードです:

import xbmc, xbmcgui, xbmcaddon
import os, sys, statvfs, time, datetime
from time import mktime

__addon__       = xbmcaddon.Addon(id='plugin.service.maintenancetool')
__addonname__   = __addon__.getAddonInfo('name')
__icon__        = __addon__.getAddonInfo('icon')

thumbnailPath = xbmc.translatePath('special://thumbnails');
cachePath = os.path.join(xbmc.translatePath('special://home'), 'cache')
tempPath = xbmc.translatePath('special://temp')
addonPath = os.path.join(os.path.join(xbmc.translatePath('special://home'), 'addons'),'plugin.service.maintenancetool')
mediaPath = os.path.join(addonPath, 'media')
databasePath = xbmc.translatePath('special://database')


if __name__ == '__main__':
    #check HDD freespace
    st = os.statvfs(xbmc.translatePath('special://home'))

if st.f_frsize:
    freespace = st.f_frsize * st.f_bavail/1024/1024
else:
    freespace = st.f_bsize * st.f_bavail/1024/1024

print "Free Space: %dMB"%(freespace)
if(freespace < 500):
    text = "You have less than 500MB of free space"
    text1 = "Please use the Maintenance tool"
    text2 = "immediately to prevent system issues"

    xbmcgui.Dialog().ok(__addonname__, text, text1, text2)


while not xbmc.abortRequested:    
    xbmc.sleep(500)

そして、ここに私が得るエラーがあります:

Error Type: <type 'exceptions.AttributeError'>
Error Contents: 'module' object has no attribute 'statvfs'
Traceback (most recent call last):
File "/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/addons/plugin.service.maintenancetool/service.py", line 39, in <module>
st = os.statvfs(xbmc.translatePath('special://home))
Attribute Error: 'module' object has no attribute 'statvfs'
4

1 に答える 1