Re: [問題] 批次讀取字串、加入文字
※ 引述《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
11/04 00:23, 1F
推
11/05 11:51, , 2F
11/05 11:51, 2F
→
11/08 09:27, , 3F
11/08 09:27, 3F
討論串 (同標題文章)
Python 近期熱門文章
PTT數位生活區 即時熱門文章