【问题标题】:Calculating size of content计算内容的大小
【发布时间】:2023-03-17 06:20:02
【问题描述】:

下面是代码sn-p。我有一个文件。

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

我的问题是,为什么最后两行给出不同的输出?他们应该不一样吗?

如果有原因,我如何编辑带有注释#Without opening file 的行以匹配带有注释#After reading the contents 的行的输出?

【问题讨论】:

  • 你可以看到像 self 这样的词,因为我已经从我的实现中复制了 sn-p。如果问题不清楚,请发表评论,我会尽力编辑和解释以获得您的帮助
  • 如果文件以二进制模式打开,会返回相同的结果吗?

标签: python python-3.x


【解决方案1】:

你在比较苹果和橘子。

os.path.getsizeof 返回文件大小。 len(some_string) 以字符返回字符串的长度无论编码如何,这会影响原始字节数。

【讨论】:

  • 但它不是我保存到文件中的相同字符串吗?
  • @Romaan:字符串是相同的,但正如 Yuval 所说,len 为您提供字符串中的字符数,而getsize 返回文件的大小(以字节为单位)。一个字节不一定是一个字符,就像一个字节不一定是一秒钟的音乐或一个位图图像文件的一个像素。
猜你喜欢
  • 2011-06-02
  • 1970-01-01
  • 1970-01-01
  • 2017-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-20
相关资源
最近更新 更多