Python 3:将新行写入HTML

时间:2009-11-21 17:11:52

标签: python html unicode python-3.x newline

我已升级到Python 3,无法弄清楚如何将反斜杠转义的换行符转换为HTML。

浏览器按字面意思呈现反斜杠,因此“\ n”对HTML源代码没有影响。因此,我的源页面只有一条长线,无法诊断。

6 个答案:

答案 0 :(得分:4)

通常我喜欢这个s=s.replace("\n","<br />\n")

因为

网页显示和

需要

<br /> 源显示中需要

\n

只是我的2美分

答案 1 :(得分:1)

解决方案是:

#!/usr/bin/python 
 import sys 
 def print(s): return sys.stdout.buffer.write(s.encode('utf-8'))
 print("Content-type:text/plain;charset=utf-8\n\n") 
 print('晉\n') 

请参阅此处的原始讨论: http://groups.google.com/group/comp.lang.python/msg/f8bba45e55fe605c

答案 2 :(得分:0)

也许我没有得到它,但不是<br /> HTML的某种换行符?

s = "Hello HTML\n"
to_render = s.replace("\n", "<br />")

如果您使用mimetype "text/plain" \n呈现内容,则ewlines应该有效。

答案 3 :(得分:0)

如果您使用的是Django,this答案将会有所帮助。

关于如何呈现页面以及是否转义HTML或没有。

答案 4 :(得分:0)

自从我解决了基本的Markdown之后,我就用正则表达式解决了新行。

widget

答案 5 :(得分:-1)

Print()应默认添加换行符 - 除非你另有说明。然而,Python 3中还有其他变化:

Old: print "The answer is", 2*2
New: print("The answer is", 2*2)

Old: print x,           # Trailing comma suppresses newline
New: print(x, end=" ")  # Appends a space instead of a newline

Old: print              # Prints a newline
New: print()            # You must call the function!

Old: print >>sys.stderr, "fatal error"
New: print("fatal error", file=sys.stderr)

Old: print (x, y)       # prints repr((x, y))
New: print((x, y))      # Not the same as print(x, y)!

Old = Python 2.5,New = Python 3。

此处有更多详情:http://docs.python.org/3.1/whatsnew/3.0.html