簡體   English   中英

如何從csv文件讀取數據並將數據插入html文件

[英]How to read in data from a csv file and insert the data into an html file

我正在嘗試創建一個Python腳本,該腳本將(a)讀取包含數據的csv文件,(b)獲取該數據並將其插入到html字符串的特定標記中,(c)最后將修改后的html字符串寫入到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:">name@example.com</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>的“名稱” <h1>Dr. Rosen Rosen</h1> <h1>Dr. Rosen Rosen</h1> ,下一列具有<span class="superhead">Title,依此類推,直到整個html。

基本上,該腳本使我可以使用帶有大量信息的csv並構建網頁,從而無需不斷輸入代碼並手動輸入代碼。 由於我是Python的新手,因此我在弄清楚如何使此腳本執行我想要的功能時遇到了問題。

任何幫助或建議,表示贊賞。

您需要將腳本合並為一個腳本。 對於csv文件中的每一行,您提取該醫生的數據,然后使用字符串串聯將其與html巨大的字符串拼接在一起。 然后,將該字符串寫入輸出文件。

下面是一個輸出名稱,職務和部門數據的示例。

但是,我必須同意@TankorSmash,這可能不是最佳解決方案。 某種模板引擎通常更易於使用。

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:">name@example.com</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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM