我不能sys.stdout.seek
I can't sys.stdout.seek
据我所知,sys.stdout
是一个代表终端标准输出的文件。但是,当我尝试使用 sys.stdout.seek
时,无论我给它什么参数,它都会抛出一个错误:
IOError: [Errno 29] Illegal seek
这是怎么回事?是不是我使用的是 TTY 本身而不是像 xterm 这样的虚拟终端?我该如何解决?
当 stdout 是 TTY 时,它是字符设备并且不可搜索,您不能 seek
在 TTY 中。与 tell
相同,未实现:
>>> sys.stdout.tell()
IOError: [Errno 29] Illegal seek
但是,当您将标准流重定向到一个文件时,例如在 shell 中:
$ my program > ouput.txt
现在您可以 seek
来自 stdout,stdout 现在是一个文件。
如果您使用的是 Unix,请查看此参考资料:
Understanding character device (or character special) files。
据我所知,sys.stdout
是一个代表终端标准输出的文件。但是,当我尝试使用 sys.stdout.seek
时,无论我给它什么参数,它都会抛出一个错误:
IOError: [Errno 29] Illegal seek
这是怎么回事?是不是我使用的是 TTY 本身而不是像 xterm 这样的虚拟终端?我该如何解决?
当 stdout 是 TTY 时,它是字符设备并且不可搜索,您不能 seek
在 TTY 中。与 tell
相同,未实现:
>>> sys.stdout.tell()
IOError: [Errno 29] Illegal seek
但是,当您将标准流重定向到一个文件时,例如在 shell 中:
$ my program > ouput.txt
现在您可以 seek
来自 stdout,stdout 现在是一个文件。
如果您使用的是 Unix,请查看此参考资料:
Understanding character device (or character special) files。