最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python CSV模塊使用實例

 更新時間:2015年04月09日 10:38:20   投稿:junjie  
這篇文章主要介紹了Python CSV模塊使用實例,本文將舉幾個例子來介紹一下Python的CSV模塊的使用方法,包括reader、writer、DictReader、DictWriter.register_dialect等,需要的朋友可以參考下

舉幾個例子來介紹一下,Python 的 CSV模塊的使用方法,包括,reader, writer, DictReader, DictWriter.register_dialect

一直非常喜歡python的csv模塊,簡單易用,經常在項目中使用,現在舉幾個例子說明一下。

復制代碼 代碼如下:

reader(csvfile[, dialect='excel'][, fmtparam])

參數表:

csvfile
        需要是支持迭代(Iterator)的對象,并且每次調用next方法的返回值是字符串(string),通常的文件(file)對象,或者列表(list)對象都是適用的,如果是文件對象,打開是需要加"b"標志參數。

dialect
        編碼風格,默認為excel方式,也就是逗號(,)分隔,另外csv模塊也支持excel-tab風格,也就是制表符(tab)分隔。其它的方式需要自己定義,然后可以調用register_dialect方法來注冊,以及l(fā)ist_dialects方法來查詢已注冊的所有編碼風格列表。

fmtparam
        格式化參數,用來覆蓋之前dialect對象指定的編碼風格。

例子:

復制代碼 代碼如下:

import csv

reader = csv.reader(file('your.csv', 'rb'))
for line in reader:
    print line
 

writer(csvfile[, dialect='excel'][, fmtparam])


參數表(略: 同reader, 見上)

例子:

復制代碼 代碼如下:

import csv

writer = csv.writer(file('your.csv', 'wb'))
writer.writerow(['Column1', 'Column2', 'Column3'])
lines = [range(3) for i in range(5)]
for line in lines:
    writer.writerow(line)

DictReader

同reader差不多,都是讀取CSV用的,只不過會生成一個字典(dict)類型的返回,而不是迭代類型。

DictWriter

 我主要想說的是DictWriter,我為什么會喜歡使用DictWriter呢,因為普通的writer你需要手工去構建列表,尤其是通過表單提交的時候,而我之前因為一直在zope平臺上開發(fā),而zope支持一種高級表單數據模型,也就是可以通過定義表單的時候加入相應的標志來使提交后的表單數據自動的生成一個記錄(records)類型,也就是生成一個每項數據都是一個字典的列表。這樣,我就可以非常方便的直接把表單數據傳給 DictWriter而生成csv,當然這個是在你能保證數據的正確性的前提下。好下面我來簡單的說明一下這種zope的高級表單數據類型。

例子:

復制代碼 代碼如下:

<form action='test_form_action' method=post>
            <input type="text" name="rows.Column1:records" value="0" />
            <input type="text" name="rows.Column2:records" value="1" />
            <input type="text" name="rows.Column3:records" value="2" />
            <input type="text" name="rows.Column4:records" value="3" />
    <br />
            <input type="text" name="rows.Column1:records" value="0" />
            <input type="text" name="rows.Column2:records" value="1" />
            <input type="text" name="rows.Column3:records" value="2" />
            <input type="text" name="rows.Column4:records" value="3" />
    <br />
            <input type="text" name="rows.Column1:records" value="0" />
            <input type="text" name="rows.Column2:records" value="1" />
            <input type="text" name="rows.Column3:records" value="2" />
            <input type="text" name="rows.Column4:records" value="3" />
    <br />
            <input type="text" name="rows.Column1:records" value="0" />
            <input type="text" name="rows.Column2:records" value="1" />
            <input type="text" name="rows.Column3:records" value="2" />
            <input type="text" name="rows.Column4:records" value="3" />
    <br />
            <input type="text" name="rows.Column1:records" value="0" />
            <input type="text" name="rows.Column2:records" value="1" />
            <input type="text" name="rows.Column3:records" value="2" />
            <input type="text" name="rows.Column4:records" value="3" />
    <br />
<input type="submit" value="Submit CSV" />
</form>

表單提交后的結果是:
復制代碼 代碼如下:

rows = [{'Column1': '0', 'Column2': '1', 'Column3': '2', 'Column4': '3'},
        {'Column1': '0', 'Column2': '1', 'Column3': '2', 'Column4': '3'},
        {'Column1': '0', 'Column2': '1', 'Column3': '2', 'Column4': '3'},
        {'Column1': '0', 'Column2': '1', 'Column3': '2', 'Column4': '3'},
        {'Column1': '0', 'Column2': '1', 'Column3': '2', 'Column4': '3'}]

這樣就可以直接調用DictWriter.writerows方法來處理了:
復制代碼 代碼如下:

import csv

fieldnames = ['Column1', 'Column2', 'Column3', 'Column4']
dict_writer = csv.DictWriter(file('your.csv', 'wb'), fieldnames=fieldnames)
dict_writer.writerow(fieldnames) # CSV第一行需要自己加入
dict_writer.writerows(rows)  # rows就是表單提交的數據

*注意:這里的csv文件寫入需要External Method的支持,因為在zope中由于權限沙箱的問題是不能直接操作csv模塊來讀寫文件系統(tǒng)的。


 
這樣用起來是不是非常的方便呢,這里給出生成上面表單的DTML代碼:
復制代碼 代碼如下:

<form action='test_form' method=post>
<dtml-in "range(5)">
    <dtml-in "range(4)">
        <input type="text" name="rows.Column&dtml-sequence-number;:records" value="&dtml-sequence-item;" />
    </dtml-in>
<br />
</dtml-in>
<input type="submit" value="Submit CSV" />
</form>

您可以根據您自己的需要來改寫這個表單的生成。

參考文獻:
http://docs.python.org/lib/module-csv.html
http://www.python.org/dev/peps/pep-0305/

相關文章

  • Python字符串處理函數簡明總結

    Python字符串處理函數簡明總結

    這篇文章主要介紹了Python字符串處理函數簡明總結,本文總結了一些常用的字符串處理函數,需要的朋友可以參考下
    2015-04-04
  • Python修改列表元素有哪些方法總結

    Python修改列表元素有哪些方法總結

    在Python中列表是一種可變序列,可以存儲任意類型的元素,而元組是一種不可變序列,也可以存儲各種類型的元素,下面這篇文章主要給大家介紹了關于Python修改列表元素有哪些方法的相關資料,需要的朋友可以參考下
    2023-05-05
  • Python wxpython模塊響應鼠標拖動事件操作示例

    Python wxpython模塊響應鼠標拖動事件操作示例

    這篇文章主要介紹了Python wxpython模塊響應鼠標拖動事件操作,結合實例形式分析了Python使用wxpython模塊創(chuàng)建窗口、綁定事件及相應鼠標事件相關操作技巧,需要的朋友可以參考下
    2018-08-08
  • Python 70行代碼實現簡單算式計算器解析

    Python 70行代碼實現簡單算式計算器解析

    這篇文章主要介紹了Python 70行代碼實現簡單算式計算器解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • python 內置函數filter

    python 內置函數filter

    這篇文章主要介紹了python 內置函數filter的相關資料,需要的朋友可以參考下
    2017-06-06
  • Python實現簡單的用戶交互方法詳解

    Python實現簡單的用戶交互方法詳解

    這篇文章給大家分享了關于Python實現簡單的用戶交互的相關知識點內容,有需要的朋友們可以學習下。
    2018-09-09
  • Python 列表理解及使用方法

    Python 列表理解及使用方法

    這篇文章主要介紹了Python 列表理解及使用方法的相關資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-10-10
  • PYQT5 實現界面的嵌套方式

    PYQT5 實現界面的嵌套方式

    這篇文章主要介紹了PYQT5 實現界面的嵌套方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python進行圖片信息提取并重命名

    Python進行圖片信息提取并重命名

    Tesseract-OCR是一款優(yōu)秀的開源OCR軟件,本文主要介紹了如何使用Tesseract-OCR工具識別圖片并提取信息,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-10-10
  • python用pip install時安裝失敗的一系列問題及解決方法

    python用pip install時安裝失敗的一系列問題及解決方法

    這篇文章主要介紹了python用pip install時安裝失敗的一系列問題,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02

最新評論

临邑县| 南康市| 三门峡市| 尼玛县| 汝阳县| 厦门市| 类乌齐县| 修水县| 巩留县| 济阳县| 伊宁县| 宁强县| 乌拉特后旗| 乌恰县| 广德县| 赫章县| 民和| 外汇| 巴林左旗| 夏津县| 吉林省| 公主岭市| 新泰市| 禄丰县| 巴楚县| 肇庆市| 河源市| 建宁县| 达拉特旗| 常州市| 高邮市| 依安县| 永登县| 普安县| 和顺县| 克什克腾旗| 肥城市| 合阳县| 紫金县| 黎城县| 同德县|