首页 > 解决方案 > 无法截断 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

其他细节:从命令行运行

标签: python-3.6stdout

解决方案


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 中将以前的打印覆盖到标准输出?了解更多信息


推荐阅读