有没有办法找到当前打开的文件对象的大小?
具体来说,我正在使用 tarfile 模块来创建 tarfile,但我不希望 tarfile 超过特定大小。据我所知,tarfile 对象是类似文件的对象,所以我想通用的解决方案会起作用。
$ ls -la chardet-1.0.1.tgz
-rwxr-xr-x 1 vinko vinko 179218 2008-10-20 17:49 chardet-1.0.1.tgz
$ python
Python 2.5.1 (r251:54863, Jul 31 2008, 22:53:39)
[GCC 4.1.2 (Ubuntu 4.1.2-0ubuntu4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> f = open('chardet-1.0.1.tgz','rb')
>>> f.seek(0, os.SEEK_END)
>>> f.tell()
179218L
将 ChrisJY 的想法添加到示例中
>>> import os
>>> os.fstat(f.fileno()).st_size
179218L
>>>
Note: 根据评论,f.seek(0, os.SEEK_END)
打电话之前必须f.tell()
,如果没有它,它将返回大小 0。原因是f.seek(0, os.SEEK_END)将文件对象的位置移动到文件末尾。 https://stackoverflow.com/questions/283707/size-of-an-open-file-object#comment53321883_283719
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)