找到两个文件大小之间的比率百分比

时间:2015-06-07 19:34:17

标签: python filesize

我编写了一个简短的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))输入计算器时,它会返回正确的结果,只会增加我的困惑。

2 个答案:

答案 0 :(得分:2)

这些大小是整数,因此Python正在执行整数除法。首先尝试将大小转换为浮点数:

file1Size = float(os.stat(file1).st_size)
file2Size = float(os.stat(file2).st_size)

在整数除法中,1 / 2为0.但是对于浮动指针编号,1.0 / 2.0将为0.5。

答案 1 :(得分:0)

如果你正在使用python 2.x试试:

from __future__ import division

在Python 2.x标准中,“/”是整数除法