![如何通过管道将 html 连同格式/间距传输到 gedit?](https://linux22.com/image/820709/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%E7%AE%A1%E9%81%93%E5%B0%86%20html%20%E8%BF%9E%E5%90%8C%E6%A0%BC%E5%BC%8F%2F%E9%97%B4%E8%B7%9D%E4%BC%A0%E8%BE%93%E5%88%B0%20gedit%EF%BC%9F.png)
有没有办法将 html 通过管道传输到 gedit 而不丢失间距。
我正在尝试:echo "'+html5template+'" | gedit
输出如下:
<!DOCTYPE html><html><head><title></title></head><body></body></html>
但我需要它是这样的:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
脚本如下:
doctype='<!DOCTYPE html>'
html_start='<html>'
header_start='<head>'
header_end='</head>'
body='<body></body>'
html_end='</html>'
meta_data=''
#get page title
meta_data += '<title>'+self.builder.get_object("page_title_entry").get_text()+'</title>'
#build the html template
html5template=doctype+html_start+header_start+meta_data+header_end+body+html_end
#open template with gedit
Popen('echo "'+html5template+'" | gedit', shell=True, stdin=PIPE, stdout=PIPE, stderr=STDOUT, close_fds=False)
答案1
您不会在 Python 代码中创建任何空格,您的输出就是您的 Python 代码所创建的。
为了获得所需的间距,您可以例如替换
html5template=doctype+html_start+header_start+meta_data+header_end+body+html_end
和
indent=' '
html5template='\n'.join((doctype,
html_start,
indent + header_start,
indent + indent + meta_data,
indent + header_end,
indent + body,
html_end
))