无法截断sys.stdout;返回“ io.UnsupportedOperation:截断”

时间:2018-11-07 18:19:07

标签: python-3.6 stdout

完整代码:

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

其他详细信息:从命令行运行

1 个答案:

答案 0 :(得分:1)

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

有关更多信息,请参见How to overwrite the previous print to stdout in python?