控制台中有多少个字符?

Rug*_*rra 5 python shell

如何使用python找出交互式shell中结束行之前一行中的字符?(通常为 80)

Ste*_*202 3

您可以使用该tput实用程序查询终端中可用的行数和列数。您可以使用以下命令执行它subprocess.Popen

>>> import subprocess
>>> tput = subprocess.Popen(['tput', 'cols'], stdout=subprocess.PIPE)
>>> int(tput.communicate()[0].strip())
180
Run Code Online (Sandbox Code Playgroud)

同样的原理也可以应用于gregseth提到的$COLUMNS查询变量:

>>> tput = subprocess.Popen(['echo $COLUMNS'], shell=True, stdout=subprocess.PIPE)
>>> int(tput.communicate()[0].strip())
180
Run Code Online (Sandbox Code Playgroud)

最后,如果您可以按照Ignacio Vazquez-Abrams 的建议使用curses库来解决这样一个简单的问题,那么请注意,您需要执行三个语句,而不是一个:

>>> import curses
>>> curses.setupterm()
>>> curses.tigetnum('cols')
180
Run Code Online (Sandbox Code Playgroud)

如果调整了终端的大小,则setupterm需要先调用 then ,然后才能使用 查询新的终端宽度tigetnum