当我使用 st_size 读取文件大小时,我得到 11264 字节:
k = os.stat(r"C:\Users\sakth\Desktop\ASRS.txt")
print(k.st_size)
但是当我按块读取文件并总结它们的字节时,我只得到 11060 字节。
fp = open(r"C:\Users\sakth\Desktop\ASRS.txt", 'r')
total_bytes = 0
while True:
chunk = fp.read(1024)
if chunk == '':
print("File reached EOF")
break
print(chunk)
total_bytes = total_bytes + len(chunk)
print("total bytes sent", total_bytes)
为什么同一个文件获得的大小不同?
您使用的是 Windows,并且您的文件可能包含 204 (11264-11060) 个回车换行对,在文本模式下读取时,它们会标准化为单个换行 (
\n
) 字符。使用二进制模式 ('rb'
) 可以避免这种转换。