壳牌文本Python字符串
我正在写一个小蟒蛇工具,以帮助推动我们的外壳-help
文档搜索的网页,但我打了一个奇怪的块:壳牌文本Python字符串
output = subprocess.Popen([sys.argv[1], '--help'],stdout=subprocess.PIPE).communicate()[0]
output = output.split('\n')
print output[4]
#NAME
for l in output[4]:
print l
#N
#A
#
#A
#M
#
#M
#E
#
#E
#or when written, n?na?am?me?e
它的文档中做到这一点对于任何heading/subheading
,这使得它几乎不可用。
获取正确格式的任何提示?我在哪里搞砸了?
感谢
该文档包含以古老的行式打印机方式完成的重载字符:打印每个字符,然后是退格键(\b
,又名\x08
),然后再次输入相同的字符。所以“NAME”变成"N\bNA\bAM\bME\bE"
。如果你能说服程序而不是这样输出,那将是最好的;否则,你可以清理它类似于output = re.sub(r'\x08.', '', output)
清除它。非常感谢。 – 2012-07-13 17:06:27
标记为粗体在终端打印字符的字符,后跟一个退格字符的一种常见方式,其次是角色本身再次(就像你会做它的机械打字机)。像xterm
这样的终端仿真程序会检测这些序列并将它们变成粗体字符。如果stdout不是终端,程序就不应该打印这样的序列,但如果你的工具确实如此,你将不得不自己清理这些乱七八糟的东西。
它有时也用于通过打印字符来执行下划线,然后通过退格键,然后是下划线字符。 – MRAB 2012-07-13 16:47:41
你得到什么'print repr(output [4])'? – MRAB 2012-07-13 16:20:37
用TERM = dumb运行它? – 2012-07-13 16:28:54