Re: [問題] 批次讀取字串、加入文字

看板Python作者時間13年前 (2012/10/27 02:31), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/5 (看更多)
※ 引述《cantakeyeofu (不看你的眼)》之銘言: : 現在我有個文字檔案,內容如下: : Apple 蘋果 123 : HTC 宏達電 456 : Samsung 三星 789 : Sony 索尼 234 : Asus 華碩 345 : 我想要把這個檔案內容變成: : <tr><td>Apple</td><td>蘋果</td><td>123</td></tr> : <tr><td>HTC</td><td>宏達電</td><td>456</td></tr> : <tr><td>Samsung</td><td>三星</td><td>123</td></tr> : <tr><td>Sony</td><td>索尼</td><td>123</td></tr> : <tr><td>Asus</td><td>華碩</td><td>123</td></tr> : 不知道有什麼比較好的作法?謝謝 * 前一篇有板友說了用replace的方法, 小弟再提供幾個 a= u"""Apple 蘋果 123 HTC 宏達電 456 Samsung 三星 789 Sony 索尼 234 Asus 華碩 345""" 第1種: 帥氣一行碼, 但是下一次自己也看不懂 print u"\n".join(u"<tr>{0}</tr>".format(u"".join(u"<td>{0}</td>".format(j) for j in i.split())) for i in a.splitlines()) 第2種: 同上, 好懂一點的寫法 def tr(lines): lines = (u"<tr>{0}</tr>".format(td(i.split())) for i in lines) return u"\n".join(lines) def td(tokens): return u"".join(u"<td>{0}</td>".format(i) for i in tokens) print tr(a.splitlines()) 第3種: 選對工具的寫法 import re b = re.sub(ur"(\S*)[ \t]?",ur"<td>\1</td>",a) c = re.sub(ur"(?m)^(.*?)$",ur"<tr>\1</tr>",b) print c -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.74.193.142

10/27 13:29, , 1F
只能說regexp神好用,但神難學QAQ
10/27 13:29, 1F
文章代碼(AID): #1GYjSQbf (Python)
文章代碼(AID): #1GYjSQbf (Python)