2017-01-23 14 views
0

(a)データを含むcsvファイルを読み込み、(b)そのデータを取り込んで挿入するPythonスクリプトを作成しようとしていますhtml文字列の特定のタグに変換し、最後にその変更されたhtml文字列をhtmlファイルに書き込みます。csvファイルからデータを読み込んでhtmlファイルに挿入する方法

これまでのところ、私はここにCSVファイルから読み込むためのスクリプトを持っている:

import csv 

with open('data.csv', 'rb') as f: 
    reader = csv.reader(f) 
    for row in reader: 
     print row 

f.close() 

私もここにhtmlファイルを作成しますスクリプトがあります。だから、のよう

import webbrowser 

# open blank file 
f = open('template.html', 'w') 

message = """<style scoped="scoped" type="text/css">h1.page-title { display: none; }</style> 

<p>&nbsp;</p> 

<div class="row"> 
    <div class="col-xs-12 col-sm-8 col-md-9"> 
     <div class="twoblocks"> 
      <div class="blocks-holder grey"> 

       <div class="block-left w50 bkgimage" style="background-image: url('/images/common/not_pictured-wide.jpg');"> 
        <div class="force-16x9">&nbsp;</div> 
       </div> 

       <div class="block-right w50 content" style="width: 50%;"> 
       <h1>Dr. Rosen Rosen</h1> 
       <span class="superhead">Title, <a href="index.php?Itemid=XXXX">Department</a></span> 
       </div> 

      </div> 
     </div> 

     <h3>Biography</h3> 
     <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam hendrerit mauris dictum metus porta, in consectetur dui aliquam. Nunc eu pharetra ipsum. Donec nec tincidunt dolor. Mauris dolor nisi, pellentesque quis tellus malesuada, placerat tristique dui. Phasellus at dui in nunc vestibulum accumsan. Aliquam erat volutpat. Duis non interdum ipsum, et tristique leo. Pellentesque condimentum, felis id placerat placerat, purus purus mattis urna, ac sodales ipsum ipsum ut risus. Aenean eget molestie ante, nec blandit magna. Integer efficitur fringilla odio sit amet sagittis. Sed ante turpis, pulvinar condimentum vehicula ac, tempus cursus ante. Donec eu scelerisque metus. Vestibulum facilisis tincidunt fermentum. Phasellus consequat odio in libero pharetra rutrum.</p> 

     <hr /> 

     <h3>Education</h3> 
     <ul class="list-unstyled list-spaced"> 
      <li>Ph.D., Field of Degree, University of Lorem Ipusm, 1990</li> 
      <li>M.S., Field of Degree, University of Lorem Ipusm, 1990</li> 
      <li>B.S., Field of Degree, University of Lorem Ipusm, 1990</li> 
     </ul> 

     <hr /> 

     <h3>Classes Taught</h3> 
     <ul class="list-unstyled list-spaced"> 
      <li><a target="_blank" href="http://catalog.example.com/search/?search=CLA+###">CLA ### - First Class</a></li> 
      <li><a target="_blank" href="http://catalog.example.com/search/?search=CLA+###">CLA ### - Second Class</a></li> 
      <li><a target="_blank" href="http://catalog.example.com/search/?search=CLA+###">CLA ### - Third Class</a></li> 
     </ul> 

     <div id="classes" class="collapse"> 

      <ul class="list-unstyled list-spaced top-0"> 
       <li><a target="_blank" href="http://catalog.example.com/search/?search=CLA+###">CLA ### - Fourth Class</a></li> 
       <li><a target="_blank" href="http://catalog.example.com/search/?search=CLA+###">CLA ### - Fifth Class</a></li> 
       <li><a target="_blank" href="http://catalog.example.com/search/?search=CLA+###">CLA ### - Sixth Class</a></li> 
      </ul> 

     </div> 

     <button type="button" class="btn btn-default expand collapsed" data-toggle="collapse" data-target="#classes"></button> 

     <hr /> 

     <h3>Affiliations</h3> 
     <ul class="list-unstyled list-spaced"> 
      <li>Organization</li> 
      <li>Organization</li> 
      <li>Organization</li> 
     </ul> 

     <div id="affiliations" class="collapse"> 

      <ul class="list-unstyled list-spaced top-0"> 
       <li>Organization</li> 
       <li>Organization</li> 
       <li>Organization</li> 
      </ul> 

     </div> 

     <button type="button" class="btn btn-default expand collapsed" data-toggle="collapse" data-target="#affiliations"></button> 

     <hr /> 

     <h3>Publications</h3> 
     <ul class="list-unstyled list-spaced"> 
      <li>"Article Title." <em>Name of Publication.</em> Volume, Page Numbers. Authors (Date).</li> 
      <li>"Article Title." <em>Name of Publication.</em> Volume, Page Numbers. Authors (Date).</li> 
      <li>"Article Title." <em>Name of Publication.</em> Volume, Page Numbers. Authors (Date).</li> 
     </ul> 

     <div id="publications" class="collapse"> 

      <ul class="list-unstyled list-spaced top-0"> 
       <li>"Article Title." <em>Name of Publication.</em> Volume, Page Numbers. Authors (Date).</li> 
       <li>"Article Title." <em>Name of Publication.</em> Volume, Page Numbers. Authors (Date).</li> 
       <li>"Article Title." <em>Name of Publication.</em> Volume, Page Numbers. Authors (Date).</li> 
      </ul> 

     </div> 

     <button type="button" class="btn btn-default expand collapsed" data-toggle="collapse" data-target="#publications"></button> 

    </div> 

    <aside class="col-xs-12 col-sm-4 col-md-3"> 
     <div class="well"> 

      <h3>Contact</h3> 
      <p>Address <br />Building Name <br />Room # <br />City, State, Zip <br /> <a href="/map"><i class="ico-map"></i>Map</a></p> 
      <p><i class="ico-phone"></i> XXX.XXX.XXXX <br /> <a href="mailto:">[email protected]</a></p> 
     </div> 

     <h3>Academic Interests</h3> 
     <ul class="list-unstyled list-spaced"> 
      <li>Area</li> 
      <li>Another Area</li> 
      <li>Area</li> 
      <li>Another Area</li> 
     </ul> 

    </aside> 

</div>""" 

# write to file 
f.write(message) 

# close file 
f.close() 

# open in browser 
filename = 'file:////Scripts/' + 'template.html' 
webbrowser.open_new_tab(filename) 

を今、私はcsvファイルから情報を読み取ることができます。また、使用しているテンプレートでhtmlファイルを作成することもできます。私が立ち往生しているところでは、そのcsv情報を取得し、その情報をHTMLの特定の順序でタグに貼り付ける方法です。

たとえば、csvの各行にはhtmlテンプレートを記入する情報があります。基本的に、最初の列には<h1>Dr. Rosen Rosen</h1>の '名前'が含まれ、次の列には<span class="superhead">Title,の 'タイトル'があります。

このスクリプトでは、基本的に、情報の束とcsvを使用してWebページを構築して、コードに入り、手動で入力する必要はありません。私はPythonに比較的新しいので、このスクリプトをどのようにしてやるのかを理解するのに問題があります。

ご意見やご感想をお寄せください。

+1

私はあなたがHTML Webページにデータを入力する方法を尋ねていると思いますが、それはCSVのものではないと私は考えています。 Jinja2のようなものを見てください – TankorSmash

答えて

0

スクリプトを1つのスクリプトにまとめる必要があります。 csvファイルの各行について、その医者のデータを抽出し、文字列連結を使用してそれをginormous html文字列で連結します。次に、その文字列を出力ファイルに書き込みます。

以下は、名前、タイトル、および部門データを出力するサンプルです。

しかし、私は@ TankorSmashに同意する必要がありますが、これは最適な解決策ではない可能性があります。通常、何らかの種類のtemplating engineが使用する方が簡単です。

import webbrowser 
import csv 

# open blank file 
f = open('template.html', 'w') 


with open('./data.csv', 'r') as c: 
    reader = csv.reader(c) 
    for row in reader: 
     name = row[0] 
     title = row[1] 
     department = row[2] 

     message = """<style scoped="scoped" type="text/css">h1.page-title { display: none; }</style> 

<p>&nbsp;</p> 

<div class="row"> 
    <div class="col-xs-12 col-sm-8 col-md-9"> 
     <div class="twoblocks"> 
      <div class="blocks-holder grey"> 

       <div class="block-left w50 bkgimage" style="background-image: url('/images/common/not_pictured-wide.jpg');"> 
        <div class="force-16x9">&nbsp;</div> 
       </div> 

       <div class="block-right w50 content" style="width: 50%;"> 
       <h1>""" + name + """</h1> 
       <span class="superhead">""" + title + """, <a href="index.php?Itemid=XXXX">""" + department + """</a></span> 
       </div> 

      </div> 
     </div> 

     <h3>Biography</h3> 
     <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam hendrerit mauris dictum metus porta, in consectetur dui aliquam. Nunc eu pharetra ipsum. Donec nec tincidunt dolor. Mauris dolor nisi, pellentesque quis tellus malesuada, placerat tristique dui. Phasellus at dui in nunc vestibulum accumsan. Aliquam erat volutpat. Duis non interdum ipsum, et tristique leo. Pellentesque condimentum, felis id placerat placerat, purus purus mattis urna, ac sodales ipsum ipsum ut risus. Aenean eget molestie ante, nec blandit magna. Integer efficitur fringilla odio sit amet sagittis. Sed ante turpis, pulvinar condimentum vehicula ac, tempus cursus ante. Donec eu scelerisque metus. Vestibulum facilisis tincidunt fermentum. Phasellus consequat odio in libero pharetra rutrum.</p> 

     <hr /> 

     <h3>Education</h3> 
     <ul class="list-unstyled list-spaced"> 
      <li>Ph.D., Field of Degree, University of Lorem Ipusm, 1990</li> 
      <li>M.S., Field of Degree, University of Lorem Ipusm, 1990</li> 
      <li>B.S., Field of Degree, University of Lorem Ipusm, 1990</li> 
     </ul> 

     <hr /> 

     <h3>Classes Taught</h3> 
     <ul class="list-unstyled list-spaced"> 
      <li><a target="_blank" href="http://catalog.example.com/search/?search=CLA+###">CLA ### - First Class</a></li> 
      <li><a target="_blank" href="http://catalog.example.com/search/?search=CLA+###">CLA ### - Second Class</a></li> 
      <li><a target="_blank" href="http://catalog.example.com/search/?search=CLA+###">CLA ### - Third Class</a></li> 
     </ul> 

     <div id="classes" class="collapse"> 

      <ul class="list-unstyled list-spaced top-0"> 
       <li><a target="_blank" href="http://catalog.example.com/search/?search=CLA+###">CLA ### - Fourth Class</a></li> 
       <li><a target="_blank" href="http://catalog.example.com/search/?search=CLA+###">CLA ### - Fifth Class</a></li> 
       <li><a target="_blank" href="http://catalog.example.com/search/?search=CLA+###">CLA ### - Sixth Class</a></li> 
      </ul> 

     </div> 

     <button type="button" class="btn btn-default expand collapsed" data-toggle="collapse" data-target="#classes"></button> 

     <hr /> 

     <h3>Affiliations</h3> 
     <ul class="list-unstyled list-spaced"> 
      <li>Organization</li> 
      <li>Organization</li> 
      <li>Organization</li> 
     </ul> 

     <div id="affiliations" class="collapse"> 

      <ul class="list-unstyled list-spaced top-0"> 
       <li>Organization</li> 
       <li>Organization</li> 
       <li>Organization</li> 
      </ul> 

     </div> 

     <button type="button" class="btn btn-default expand collapsed" data-toggle="collapse" data-target="#affiliations"></button> 

     <hr /> 

     <h3>Publications</h3> 
     <ul class="list-unstyled list-spaced"> 
      <li>"Article Title." <em>Name of Publication.</em> Volume, Page Numbers. Authors (Date).</li> 
      <li>"Article Title." <em>Name of Publication.</em> Volume, Page Numbers. Authors (Date).</li> 
      <li>"Article Title." <em>Name of Publication.</em> Volume, Page Numbers. Authors (Date).</li> 
     </ul> 

     <div id="publications" class="collapse"> 

      <ul class="list-unstyled list-spaced top-0"> 
       <li>"Article Title." <em>Name of Publication.</em> Volume, Page Numbers. Authors (Date).</li> 
       <li>"Article Title." <em>Name of Publication.</em> Volume, Page Numbers. Authors (Date).</li> 
       <li>"Article Title." <em>Name of Publication.</em> Volume, Page Numbers. Authors (Date).</li> 
      </ul> 

     </div> 

     <button type="button" class="btn btn-default expand collapsed" data-toggle="collapse" data-target="#publications"></button> 

    </div> 

    <aside class="col-xs-12 col-sm-4 col-md-3"> 
     <div class="well"> 

      <h3>Contact</h3> 
      <p>Address <br />Building Name <br />Room # <br />City, State, Zip <br /> <a href="/map"><i class="ico-map"></i>Map</a></p> 
      <p><i class="ico-phone"></i> XXX.XXX.XXXX <br /> <a href="mailto:">[email protected]</a></p> 
     </div> 

     <h3>Academic Interests</h3> 
     <ul class="list-unstyled list-spaced"> 
      <li>Area</li> 
      <li>Another Area</li> 
      <li>Area</li> 
      <li>Another Area</li> 
     </ul> 

    </aside> 

</div>""" 

     # write to file 
     f.write(message) 

# close file 
f.close() 

# open in browser 
filename = 'template.html' 
webbrowser.open_new_tab(filename) 
関連する問題