我試圖將文本拆分爲段落。我想找到的第一行,並將其分配給一個變量,而線的其餘部分應格式化內<p></p>
拆分換行符並刪除空行
text = "Firstline
Secondline
Third line"
以下是我有:
text = unicode(ws.description)
object.firstline = text.split('\n', 1)[0] #This works, and should not be wrapped in <p></p>
bodytext = text.partition('\n')[2]
object.body = ''.join('<p>'+L+'</p>' for L in bodytext.split('\n'))
但object.body
返回此值
object.body = "<p></p>
<p>Secondline</p>
<p></p>
<p>Third line</p>
<p></p>"
如何刪除空行,所以我沒有任何空<p></p>
?
編輯
這裏是工作的代碼(從阿什維尼喬杜裏的答案)
text = unicode(ws.description)
if not "\n" in text:
object.firstline = text
else:
first, rest = text.split('\n', 1)
object.firstline = first
object.body = '\n'.join(u'<p>{}</p>'.format(x) for x in rest.splitlines() if x)
我得到這個錯誤'ValueError:需要多個值1解包' – 2014-11-24 14:14:50
@ Garreth00這意味着您的文本不包含換行符,即類似:'text ='first line''。 – 2014-11-24 14:16:55
@ Garreth00'如果'\ n'不在文本中:打印'文本只包含一行'# – 2014-11-24 14:23:08