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

看板Python作者 (Apua)時間13年前 (2012/11/03 17:35), 編輯推噓1(102)
留言3則, 3人參與, 最新討論串4/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> : 不知道有什麼比較好的作法?謝謝 ^^^^^^^^^^^^ 比較好的作法: # -*-coding=utf8-*- # s = open("FILENAME").read() s = \ '''Apple 蘋果 123 HTC 宏達電 456 Samsung 三星 789 Sony 索尼 234 Asus 華碩 345''' trans_with_td = lambda line: '<td>'+'</td><td>'.join(line)+'</td>' trans_with_tr = lambda lines: '<tr>'+'</tr>\n<tr>'.join(lines)+'</tr>\n' tag_line_with_tr = lambda lines: trans_with_tr(lines) tag_item_with_td = lambda lines: [trans_with_td(line) for line in lines] lines_to_items = lambda lines: [line.split() for line in lines] text_to_lines = lambda text: [line.rstrip() for line in text.split('\n')] run = lambda obj, fcn: obj.data.append(fcn(obj.data.pop())) text = type("",(),{}) text.data = [s] text.__str__ = lambda self: str(self.data[0]) text.to_str = lambda self: self.data[0] text.line2tr = lambda self: run(self,tag_line_with_tr) or self text.item2td = lambda self: run(self,tag_item_with_td) or self text.to_items = lambda self: run(self,lines_to_items) or self text.to_lines = lambda self: run(self,text_to_lines) or self result = text().to_lines().to_items().item2td().line2tr().to_str() print result -- 比較好....累 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.204.159.73 ※ 編輯: apua 來自: 123.204.159.73 (11/03 17:38)

11/04 00:23, , 1F
我不是專家 但是我覺得這樣有點累XDDD
11/04 00:23, 1F

11/05 11:51, , 2F
有點太OO了吧~要直覺點採用script的寫法
11/05 11:51, 2F

11/08 09:27, , 3F
認真就輸了XDDDDDDD
11/08 09:27, 3F
文章代碼(AID): #1GbEL7kZ (Python)
文章代碼(AID): #1GbEL7kZ (Python)