Python如何获取对象大小和文件大小
作者:Robin_Pi
这篇文章主要介绍了Python如何获取对象大小和文件大小问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
Python获取对象大小和文件大小
sys.getsizeof
:计算Python对象的大小(字节)os.path.getsize()
:获得文件的大小(字节)
import os, sys # sys.getsizeof() print(sys.getsizeof('1')) print(sys.getsizeof([])) print(sys.getsizeof(1)) print(sys.getsizeof(dict())) print(sys.getsizeof(set())) print() # os.pat.getsize() print(os.path.getsize('write_file_a+.txt'))
50
64
28
240
22420
python定义对象的比较方法
有时候我们需要比较两个对象。比如哪个对象大,哪个对象小。
如果我们不告诉python如何比较,那么Python是不知道如何进行比较的。
下面提供实例:
#__eq__(self,other): #在使用==比较运算符比较两个对象是否相等的时候会调用这个方法。 #如果是相等,那么应该返回True,否则返回False。 #__ne__(self,other): #在使用!=比较运算符来比较两个对象是否不相等的时候会调用这个方法。 #如果这两个对象不想等,那么应该返回True,否则返回False。 #__lt__(self,other): #在使用<比较运算符来比比较两个对象大小的时候会调用这个方法。 #如果self<other,那么应该返回True,否则返回False。 #<=和>=的解决方案: #以上讲了<、>、==以及!=的执行方法。 #没有讲<=和>=这两个运算符执行的方法,其实这两个方法是这样执行的, #拿<=为例来讲,首先执行<判断,如果为False,那么会再执行==判断, #如果都为False,那么就返回False。 class class(object): def __init__(self,param1,param2): self.param1= self.param2 = param2 def __eq__(self,other): if self.param1==other.param1 and self.param2==other.param2: return True else: return False def __ne__(self,other): if self.param1!=other.param1 or self.param2!=other.param2: return True else: return False def __lt__(self,other): if self.param1 < other.param1: return True else: if self.param1==other.param1: return True if self.param2<other.param2 else False else: return False def __gt__(self,other): if self.param1>other.param1: return True
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。