Debian的apt工具以统一宽度列的形式输出结果。例如,尝试运行“aptitude search svn”..所有名称都将以相同宽度的第一列显示。
现在,如果调整终端大小,列宽度将相应调整。
是否有一个Python库可以实现这个功能?注意,该库必须知道终端宽度并以表格作为输入-可能是[('rapidsvn','subversion的GUI客户端'), ...]
..您还可以指定第一列(或任何列)的最大宽度。请注意,如下面第二列中的字符串超过终端宽度则将其修剪,从而不会引入不需要的第二行。
$ aptitude search svn
[...]
p python-svn-dbg - A(nother) Python interface to Subversion (d
v python2.5-svn -
v python2.6-svn -
p rapidsvn - A GUI client for subversion
p statsvn - SVN repository statistics
p svn-arch-mirror - one-way mirroring from Subversion to Arch r
p svn-autoreleasedeb - Automatically release/upload debian package
p svn-buildpackage - helper programs to maintain Debian packages
p svn-load - An enhanced import facility for Subversion
p svn-workbench - A Workbench for Subversion
p svnmailer - extensible Subversion commit notification t
p websvn - interface for subversion repositories writt
$
编辑: (回应Alex下面的答案) ... 输出结果类似于'aptitude search',即 1) 只有最后一列(该行中唯一具有最长字符串的列)需要被修剪,2) 通常只有2-4列,但最后一列("description")预计至少占用终端宽度的一半。3) 所有行包含相等数量的列,4) 所有条目仅为字符串。
COLUMNS
环境变量就可以获取终端的宽度。然而,我正在寻找一个跨平台(*nix和Windows)的解决方案。 - Sridhar Ratnakumaraptitude search
显示正常。所以,我认为你在关于“只需要查看COLUMNS环境变量”的断言上是完全错误的 - 这不是一个可用的解决方案,aptitude也不是使用它。 - Alex MartelliCOLUMNS
不是一个环境变量,而是一个外壳变量。因此,它无法从另一个子进程中访问。http://mail.python.org/pipermail/python-list/2000-May/033682.html - Sridhar Ratnakumar