Python 计算内容大小
下面是代码片段。我有一份档案Python 计算内容大小,python,python-3.x,Python,Python 3.x,下面是代码片段。我有一份档案 f = open(self.reportSavePath,'w') self.test = ''; for file in file_sorted: f.write(str(os.path.getmtime(file)) + "|" + file + "\r\n") self.test = self.test + str(os.path.getmtime(file)) + "|" + file + "\r\n" f.close() print("S
f = open(self.reportSavePath,'w')
self.test = '';
for file in file_sorted:
f.write(str(os.path.getmtime(file)) + "|" + file + "\r\n")
self.test = self.test + str(os.path.getmtime(file)) + "|" + file + "\r\n"
f.close()
print("Size:",os.path.getsize(self.reportSavePath)) #Without opening file
print("Calculated size:",len(self.test.encode())) #After reading the contents
我的问题是,为什么最后两行给出不同的输出?它们不应该是一样的吗
如果有原因,我如何编辑带有注释的行
#而不打开文件
,以便在阅读内容后将输出与带有注释的行#匹配?您正在比较苹果和桔子
os.path.getsizeof
返回文件大小len(some_string)
返回字符串的长度(以字符为单位),而不考虑编码,这可能会影响原始字节计数。您正在比较苹果和桔子
os.path.getsizeof
返回文件大小len(some_string)
返回字符串的长度(以字符为单位),而不考虑编码,这可能会影响原始字节计数。您可以看到self之类的词,因为我已从实现中复制了代码段。如果问题不清楚,请评论,我会尽可能多地编辑和解释以获得您的帮助。如果文件以二进制模式打开,这会返回相同的结果吗?您可以看到类似self的单词,因为我已从实现中复制了代码段。如果问题不清楚,请评论,我会尽可能多地编辑和解释以获得您的帮助。如果文件是以二进制模式打开的,这会返回相同的结果吗?但这不是我保存到文件中的相同字符串吗?@Roman:字符串是相同的,但正如Yuval所说,len
提供字符串中的字符数,而getsize
以字节为单位返回文件大小。一个字节不一定是一个字符,就像一个字节不一定是音乐的一秒钟或位图图像文件的一个像素。但它不是我保存到文件中的相同字符串吗?@Roman:字符串是相同的,但正如Yuval所说,len
给出了字符串中的字符数,而getsize
返回文件的大小(以字节为单位)。一个字节不一定是一个字符,就像一个字节不一定是音乐的一秒钟或位图图像文件的一个像素一样。