如何重新实例化人员输出

How to re-instatiate stavfs output

为什么最后一条语句失败了?

>>> import posix
>>> os.statvfs('/boot')
posix.statvfs_result(f_bsize=1024, f_frsize=1024, f_blocks=495844L, f_bfree=412223L, f_bavail=386623L, f_files=128016L, f_ffree=127969L, f_favail=127969L, f_flag=4096, f_namemax=255)
>>> posix.statvfs_result(f_bsize=1024, f_frsize=1024, f_blocks=495844L, f_bfree=412223L, f_bavail=386623L, f_files=128016L, f_ffree=127969L, f_favail=127969L, f_flag=4096, f_namemax=255)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: structseq() takes at most 2 arguments (10 given)

"system" 要求我解释为什么我的问题与某些潜在的重复问题不同。我的问题并没有那么不同,只是我发现出于务实的原因,在这里提供直接解决方案更好:对另一个问题的回答并没有清楚地确定正在发生的事情,并且在这样做的过程中,保持答案范围狭窄,更难概括。

多亏了重复的建议,我才能够将其解决方案转化为我的问题。

改变

posix.statvfs_result(f_bsize=1024, f_frsize=1024, f_blocks=495844L, f_bfree=412223L, f_bavail=386623L, f_files=128016L, f_ffree=127969L, f_favail=127969L, f_flag=4096, f_namemax=255)

posix.statvfs_result((1024, 1024, 495844L, 412223L, 386623L, 128016L, 127969L, 127969L, 4096, 255))

解决了我的问题:

>>> posix.statvfs_result((1024, 1024, 495844L, 412223L, 386623L, 128016L, 127969L, 127969L, 4096, 255))
posix.statvfs_result(f_bsize=1024, f_frsize=1024, f_blocks=495844L, f_bfree=412223L, f_bavail=386623L, f_files=128016L, f_ffree=127969L, f_favail=127969L, f_flag=4096, f_namemax=255)

因此,为了使这更完整和方便,下面是转换为元组如何允许重新创建 os.statvfs 的结果:

>>> tuple(os.statvfs('/boot'))
(1024, 1024, 495844L, 412223L, 386623L, 128016L, 127969L, 127969L, 4096, 255)
>>> posix.statvfs_result(tuple(os.statvfs('/boot')))
posix.statvfs_result(f_bsize=1024, f_frsize=1024, f_blocks=495844L, f_bfree=412223L, f_bavail=386623L, f_files=128016L, f_ffree=127969L, f_favail=127969L, f_flag=4096, f_namemax=255)