Python 控制台中有多少个字符?

Python 控制台中有多少个字符?,python,shell,Python,Shell,在使用python的交互式shell中,如何找出字符在结束行之前的行中的位置?(通常为80)在python, 但是在shell中,环境变量$COLUMNS包含所需的信息。您可以使用该实用程序查询终端中可用的行数和列数。您可以使用以下命令来执行它: 与gregseth一样,同样的原则也可用于查询$COLUMNS变量: >>> tput = subprocess.Popen(['echo $COLUMNS'], shell=True, stdout=subprocess.PIPE)

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

python

但是在shell中,环境变量
$COLUMNS
包含所需的信息。

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

与gregseth一样,同样的原则也可用于查询
$COLUMNS
变量:

>>> tput = subprocess.Popen(['echo $COLUMNS'], shell=True, stdout=subprocess.PIPE)
>>> int(tput.communicate()[0].strip())
180
最后,如果您对Ignacio Vazquez Abrams提出的这样一个简单的问题可以使用库,那么请注意,您需要执行三条语句,而不是一条:

>>> import curses
>>> curses.setupterm()
>>> curses.tigetnum('cols')
180
如果终端已调整大小,则需要先调用,然后才能使用*nix查询新的终端宽度。

on*nix

>>> import sys,struct,fnctl,termios
>>> fd = sys.stdin.fileno()
>>> s = struct.pack("HH", 0,0)
>>> size=fcntl.ioctl(fd, termios.TIOCGWINSZ,s)
>>> struct.unpack("HH", size)[-1]
157

首先执行
import curses
,然后执行
curses.setupterm()
。另请参见
curses.wrapper
:很少80,除非您的Linux系统坏了,您被困在控制台中进行修复。您是对的,在我的控制台中,我以前使用过141列,但对我来说仍然没有意义。
>>> import sys,struct,fnctl,termios
>>> fd = sys.stdin.fileno()
>>> s = struct.pack("HH", 0,0)
>>> size=fcntl.ioctl(fd, termios.TIOCGWINSZ,s)
>>> struct.unpack("HH", size)[-1]
157