我有一个文件file.txt
做
print os.path.getsize(filename)
输出
6510
并且正在做
print len(open(filename).read())
让我
怎么来的? 我正在使用Windows 7.如果我查看Windows资源管理器中的文件属性,它说6355
大小:6.35 KB(6,510字节)
答案 0 :(得分:8)
open(filename)
在文字模式下打开filename
。
这意味着每个\r\n
(回车,换行符)都会被转换为Python字符串中的单个\n
。
好像你的文件长155行。
答案 1 :(得分:-3)
这是因为当文件保存在磁盘上时,文件系统还会使用一些额外的字节来存储文件的不同属性,如创建日期和上次修改日期。当你这样做
print os.path.getsize(filename)
它获取磁盘上实际文件的大小。
但如果你这样做
print len(open(filename).read())
您只需获取内容的长度或文件中存储的数据总是较小。
正是由于这个原因,Windows资源管理器的属性窗口显示大小(即文件内容的实际长度)和磁盘大小,磁盘上文件实际占用的字节数。