python文件对象和seek()的大小

2024-10-01 09:32:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我用以下条目创建了一个文件,由file.read()返回

'abcd\nefgh\n1234\nijkl\n5678\n\n结束'

我现在打开要读取的文件,f作为处理程序。 f.read()返回上面的。 f.tell()返回35L sys.getsizeof(f)返回76。 尝试调用偏移量大于35的f.seek(offset)时,不会返回任何结果。在

Python文档说file.seek()以字节为单位移动。那么sys.getsizeof()和{}返回的内容是否不匹配?在


Tags: 文件处理程序readsys条目seekfile偏移量
3条回答
# size of the file in bytes
size = os.path.getsize(pathname)
# another way
f = file(pathname)
size = os.fstat(f.fileno()).st_size

参考文献

在系统获取大小()不返回磁盘上文件的大小。相反,它返回file对象(磁盘上实际文件的接口)在内存中所占的大小。在

你甚至可以用系统获取大小()的对象没有任何磁盘。对于instacen,如果s = 'abcd',那么调用sys.getsizeof(s)可能返回(取决于您的实现)25,即使s是一个字符串,并且它在磁盘上没有任何空间。在

sys.getsizeof返回一个对象的大小(即file类实例在内存中所占的字节数),与文件内容的大小无关。在

相关问题 更多 >