Shell文本到python字符串

2024-04-25 05:51:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个小python实用程序来帮助将shell -help文档移动到可搜索的网页上,但遇到了一个奇怪的问题:

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都这样做,这使得它几乎不可用。你知道吗

关于正确格式化有什么建议吗?我哪里搞砸了?你知道吗

谢谢


Tags: 文档实用程序网页outputstdoutsyshelpshell
2条回答

在终端中将字符标记为粗体的一种常见方法是打印字符,然后是退格字符,然后是字符本身(就像在机械打字机上那样)。像xterm这样的终端仿真器检测这样的序列并将它们转换成粗体字符。如果stdout不是终端,程序就不应该打印这样的序列,但是如果你的工具是这样的,你就得自己收拾残局。你知道吗

文档中包含用老式行打印机的方式打印的多余字符:打印每个字符,后跟一个空格(\b又名\x08),再跟一个相同的字符。所以“NAME”变成了"N\bNA\bAM\bME\bE"。如果您能说服程序不要以这种方式输出,那将是最好的;否则,您可以用output = re.sub(r'\x08.', '', output)之类的方法来清理它

相关问题 更多 >