找到两个文件大小之间的比率作为百分比
Find the ratio between two file sizes as a percentage
我写了一个简短的 Python 脚本,通过比较文件大小,找出脚本的原始大小和缩小后的大小,并找出差异和压缩率。脚本本身如下:
#! /usr/bin/python
import os
import sys
file1 = sys.argv[1]
file2 = sys.argv[2]
file1Size = os.stat(file1).st_size
file2Size = os.stat(file2).st_size
difference = file1Size - file2Size
ratio = (((file1Size - file2Size) / file1Size) * 100) # Math to find ratio. Somehow broken (?!).
print("Original size: " + str(file1Size))
print("New size: " + str(file2Size))
print("Change in size: " + str(difference))
print("Size change ratio: " + str(ratio) + "%")
然而,当我运行这个脚本时,它输出:
Original size: 2975
New size: 1125
Change in size: 1850
Size change ratio: 0%
P.S。当我将公式 ((((file1Size - file2Size) / file1Size) * 100)
) 手动输入计算器时,它 returns 是正确的结果,只会增加我的困惑。
这些大小是整数,所以 Python 正在执行整数除法。先尝试将大小转换为浮点数:
file1Size = float(os.stat(file1).st_size)
file2Size = float(os.stat(file2).st_size)
在整数除法中,1 / 2
为0。但是对于浮点数,1.0 / 2.0
将为0.5。
如果您正在使用 python 2.x 试试:
from __future__ import division
在Python2.x中标准"/"为整数除法
我写了一个简短的 Python 脚本,通过比较文件大小,找出脚本的原始大小和缩小后的大小,并找出差异和压缩率。脚本本身如下:
#! /usr/bin/python
import os
import sys
file1 = sys.argv[1]
file2 = sys.argv[2]
file1Size = os.stat(file1).st_size
file2Size = os.stat(file2).st_size
difference = file1Size - file2Size
ratio = (((file1Size - file2Size) / file1Size) * 100) # Math to find ratio. Somehow broken (?!).
print("Original size: " + str(file1Size))
print("New size: " + str(file2Size))
print("Change in size: " + str(difference))
print("Size change ratio: " + str(ratio) + "%")
然而,当我运行这个脚本时,它输出:
Original size: 2975
New size: 1125
Change in size: 1850
Size change ratio: 0%
P.S。当我将公式 ((((file1Size - file2Size) / file1Size) * 100)
) 手动输入计算器时,它 returns 是正确的结果,只会增加我的困惑。
这些大小是整数,所以 Python 正在执行整数除法。先尝试将大小转换为浮点数:
file1Size = float(os.stat(file1).st_size)
file2Size = float(os.stat(file2).st_size)
在整数除法中,1 / 2
为0。但是对于浮点数,1.0 / 2.0
将为0.5。
如果您正在使用 python 2.x 试试:
from __future__ import division
在Python2.x中标准"/"为整数除法