如何在python中获取临时文件的大小?

How can I get the size of a TemporaryFile in python?

本问题已经有最佳答案,请猛点这里访问。

目前当我写信给一个临时的:

1
2
3
4
5
6
7
8
import tempfile
a = tempfile.TemporaryFile()

a.write(...)

# The only way I know to get the size
a.seek(0)
len(a.read())

有更好的方法吗?


1
2
3
4
5
import tempfile
a = tempfile.TemporaryFile()
a.write('abcd')
a.tell()
# 4

a.tell()提供了文件中的当前位置。如果你只是附加物,这将是准确的。如果使用SEEK跳过文件,则首先使用以下命令查找文件的结尾:a.seek(0, 2)第二个参数"whence"=2表示位置相对于文件结尾。https://docs.python.org/2/tutorial/inputout.html文件对象的方法


您可以使用os.stat,前提是该文件已关闭或所有挂起的写入都已刷新。

1
os.stat(a.name).st_size