有没有办法将 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
))