python-3.6 - 无法截断 sys.stdout;返回“io.UnsupportedOperation:截断”
问题描述
完整代码:
import sys
import time
counter = 0
while True:
sys.stdout.write(str(counter))
time.sleep(1)
sys.stdout.truncate()
counter += 1
重要的部分
sys.stdout.truncate()
问题)
为什么会sys.stdout.truncate()
返回错误?sys.stdout
如果sys.stdout.truncate()
不起作用,我该如何截断?
操作系统和更多信息
操作系统:Windows
操作系统版本:Windows 10
编程语言:Python
编程语言版本:Python 3.6
其他细节:从命令行运行
解决方案
sys.stdout 是一个文件对象,它对应于解释器的标准输出并且没有 truncate() 方法:
https://docs.python.org/3/library/sys.html#sys.stdout
您似乎想要创建状态栏样式输出。这应该在 Python3 中工作:
import time
counter = 0
while True:
print("{}".format(counter), end="\r")
time.sleep(1)
counter += 1
请参阅如何在 python 中将以前的打印覆盖到标准输出?了解更多信息