我有一個python腳本(下面)沒有提供準確的結果。我確信我搞砸了一些東西,但似乎無法弄清楚。我將不勝感激任何意見或建議。確定可用空間的Python腳本提供了不準確的結果
該腳本的用途是報告特定安裝點上剩餘的總磁盤空間百分比。
#!/usr/bin/python
import os
disk = os.statvfs("/Volumes/Promotions/")
totalBytes = float(disk.f_bsize*disk.f_blocks)
totalUsedSpace = float(disk.f_bsize*(disk.f_blocks-disk.f_bfree))
totalAvailSpace = float(disk.f_bsize*disk.f_bfree)
used = float(totalUsedSpace/1024/1024/1024/1024/1024)
avail = float (totalAvailSpace/1024/1024/1024/1024/1024)
total = float (totalBytes/1024/1024/1024/1024/1024)
percent = ((used)/(total)*100)
import smtplib
SERVER = "webmail.****.com"
FROM = "***@***.com" TO = ["***@***.com"] # must be a list
SUBJECT = "Hello!"
TEXT = "Total Available Remaining Percent Full\n" "%.2fTB" % (total) + " " "%.2fTB" % (avail) + " " "%.2fTB" % (used) + " " "%.2f%%" % (percent)
# Prepare actual message
message = """\
From: %s
To: %s
Subject: %s
%s """ % (FROM, ", ".join(TO), SUBJECT, TEXT)
# Send the mail
server = smtplib.SMTP(SERVER)
server.sendmail(FROM, TO, message)
server.quit()
上述發送以下的輸出:
Total 0.2TB Available 0.00TB Remaining 0.01TB Percent Full 83.12%
的問題是上述的路徑實際上是138 TB在大小與現有23.3 TB
任何輸入或建議將不勝感激。
謝謝! 特里
你爲什麼要除以1024的5倍:
更好的使用轉換函數? 1 TiB是'1024 ** 4'字節,而不是'1024 ** 5'。 – 2014-11-20 19:26:09
你確定你的意思是「剩餘」嗎? – 2014-11-20 19:32:13
gnibbler - 我打錯了剩餘 - 謝謝你指出。我打算放二手。 – 2014-11-20 19:39:58