舉例說明Python的CSV模組

2021-06-28 10:12:42 字數 1503 閱讀 8888

舉幾個例子來介紹一下,python 的 csv模組的使用方法,包括,reader, writer, dictreader, dictwriter.register_dialect

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

參數列:

csvfile

需要是支援迭代(iterator)的物件,並且每次呼叫next方法的返回值是字串(string),通常的檔案(file)物件,或者列表(list)物件都是適用的,如果是檔案物件,開啟是需要加"b"標誌引數。

dialect

編碼風格,預設為excel方式,也就是逗號(,)分隔,另外csv模組也支援excel-tab風格,也就是製表符(tab)分隔。其它的方式需要自己定義,然後可以呼叫register_dialect方法來註冊,以及list_dialects方法來查詢已註冊的所有編碼風格列表。

fmtparam

格式化引數,用來覆蓋之前dialect物件指定的編碼風格。

例子:

import csv

reader = csv.reader(file('your.csv', 'rb'))

for line in reader:

print line

參數列(略: 同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)

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

例子:

表單提交後的結果是:

rows = [,,,

,]

這樣就可以直接呼叫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模組來讀寫檔案系統的。

這樣用起來是不是非常的方便呢,這裡給出生成上面表單的dtml**:

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

舉例說明Python的CSV模組

by gary jia 文章標籤 舉幾個例子來介紹一下,python 的 csv模組的使用方法,包括,reader,writer,dictreader,dictwriter.register dialect 一直非常喜歡python的csv模組,簡單易用,經常在專案中使用,現在舉幾個例子說明一下。參...

sprintf舉例說明

最近需要把圖形的座標轉換為字元來檢驗圖形座標的正確與否,所以較多的用到了sprintf 函式。例如 int sign 100 char s1 10 sprintf s1,d sign pdc textout 0,0,s1 這裡就把sprintf 函式的用法總結一下。int sprintf char ...

python argparse舉例說明

目的 想從命令列通過命令來指定是否執行程式中的某個函式 模組 更新關於另乙個例子 這裡只舉例說明 原因是看了很多博文之後,還是沒有解決筆者上面說的那個問題,即如何從命令列決定是否執行某段函式問題 設定乙個引數,名為foreground,簡寫f 即在終端可以輸入 foreground也可以輸入 f。跟...