Vin*_*vic 85
$ 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,2)
>>> f.tell()
179218L
Run Code Online (Sandbox Code Playgroud)
将ChrisJY的想法添加到示例中
>>> import os
>>> os.fstat(f.fileno()).st_size
179218L
>>>
Run Code Online (Sandbox Code Playgroud)
好吧,如果文件对象支持tell方法,你可以这样做:
current_size = f.tell()
Run Code Online (Sandbox Code Playgroud)
那将告诉你它是否正在写作.如果以顺序方式写入,则这将是文件的大小.
否则,您可以使用文件系统功能,即os.fstat按照其他人的建议.