前提・実現したいこと
htmlファイルの金額表示をすべて、「税込金額」 → 「税抜金額 + 税」という表記に変更したいのですが、
下記のソースコードでは、「'list' object has no attribute 'replace'」というエラーメッセージが出てしまい
置換できません。
リストでは置換できないという意味かと思ったのですが、どのように修正すれば良いのかがわからず
質問させていただきました。
ご教示いただければ幸いです。よろしくお願いいたします。
python
1import re, os, glob, math 2from pathlib import Path 3 4path = '/Users/~~.html' 5 6with open(path) as f: 7 lines = f.readlines() 8 lines_strip = [line.strip() for line in lines] 9 before = [line.strip('<p class="b_price">''円</p>') for line in lines_strip if '<p class="b_price">' in line] 10 int_price = [int(x.replace(',','')) for x in before] 11 after = [str(math.ceil(int(x) / 1.08)) + '円 + 税' for x in int_price] 12 for row in before: 13 columns_before = row.rstrip() 14 15 for row in after: 16 columns_after = row.rstrip() 17 18 price = lines_strip.replace(columns_before, columns_after) 19 20with open(file,'w') as f: 21 f.write(price) 22
html
1<!-- 商品一覧 --> 2<div class="main"> 3 <div class="flex"> 4 <a href="item50.html"><img src="image/50.jpg"></a> 5 <p class="b_name">商品50</p> 6 <p class="b_price">9,720円</p> <!-- 9,720円 → 9,000円+税 --> 7 </div> 8 9 <div class="flex"> 10 <a href="item60.html"><img src="image/60.jpg"></a> 11 <p class="b_name">商品60</p> 12 <p class="b_price">8,640円</p><!-- 8,640円 → 8,000円+税 --> 13 </div> 14 15 <div class="flex"> 16 <a href="item62.html"><img src="image/62.jpg"></a> 17 <p class="b_name">商品62</p> 18 <p class="b_price">7,560円</p><!-- 7,560円 → 7,000円+税 --> 19 </div> 20 21<!-- 以下続く --> 22 23</div>
補足情報(FW/ツールのバージョンなど)
version:Python 3.6.5
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/26 09:47
2019/09/26 09:52
2019/09/26 10:22
2019/09/27 00:56
2019/09/27 08:16
2019/09/27 09:05