国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python程序中用csv模塊來操作csv文件的基本使用教程

2019-11-25 16:54:00
字體:
來源:轉載
供稿:網友

CSV全稱為“Comma Separated Values”,是一種格式化的文件,由行和列組成,分隔符可以根據需要來變化。
如下面為一csv文件:

Title,Release Date,DirectorAnd Now For Something Completely Different,1971,Ian MacNaughtonMonty Python And The Holy Grail,1975,Terry Gilliam and Terry JonesMonty Python's Life Of Brian,1979,Terry JonesMonty Python Live At The Hollywood Bowl,1982,Terry HughesMonty Python's The Meaning Of Life,1983,Terry Jones

csv可以比較方便的在不同應用之間遷移數據。可以將數據批量導出為csv格式,然后倒入到其他應用程序中。很多應用中需要導出報表,也通常用csv格式導出,然后用Excel工具進行后續編輯。

打印發行日期及標題,逐行處理:

for line in open("samples/sample.csv"):  title, year, director = line.split(",")  print year, title

使用csv模塊處理:

import csvreader = csv.reader(open("samples/sample.csv"))for title, year, director in reader:  print year, title

改變分隔符

創建一csv.excel的子類,并修改分隔符為”;”

# File: csv-example-2.pyimport csvclass SKV(csv.excel):  # like excel, but uses semicolons  delimiter = ";" csv.register_dialect("SKV", SKV)reader = csv.reader(open("samples/sample.skv"), "SKV")for title, year, director in reader:  print year, title

如果僅僅僅是改變一兩個參數,則可以直接在reader參數中設置,如下:

# File: csv-example-3.py import csv reader = csv.reader(open("samples/sample.skv"), delimiter=";") for title, year, director in reader:  print year, title

將數據存為CSV格式

通過csv.writer來生成一csv文件。

# File: csv-example-4.py import csvimport sys data = [  ("And Now For Something Completely Different", 1971, "Ian MacNaughton"),  ("Monty Python And The Holy Grail", 1975, "Terry Gilliam, Terry Jones"),  ("Monty Python's Life Of Brian", 1979, "Terry Jones"),  ("Monty Python Live At The Hollywood Bowl", 1982, "Terry Hughes"),  ("Monty Python's The Meaning Of Life", 1983, "Terry Jones")] writer = csv.writer(sys.stdout) for item in data:  writer.writerow(item)

實例

下面我們來看一個比較完整的例子,代碼說明在注釋中:

import csv# dialect是訪問csv文件時需要指定的參數之一,用來確定csv文件的數據格式# 下面這個函數列舉系統支持的dialect有哪些,默認值是'excel',用戶也可# 以從Dialect派生一個類,使用該類的實例作為dialect參數。print csv.list_dialects()def test_writer():  # csv文件必須以二進制方式open  with open('eggs.csv', 'wb') as csvfile:    spamwriter = csv.writer(csvfile)    spamwriter.writerow(['Spam'] * 5 + ['Baked Beans'])    spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])def test_reader():  with open('eggs.csv', 'rb') as csvfile:    spamreader = csv.reader(csvfile)    for row in spamreader:      print row# sniffer 用來推斷csv文件的格式,不是很準確def test_sniffer():  with open('eggs.csv', 'wb') as csvfile:    spamwriter = csv.writer(csvfile, delimiter=' ')    spamwriter.writerow(['Spam'] * 2 + ['Baked Beans'])    spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])  # 通常你需要指定與寫入者相同的文件格式才能正確的讀取數據  with open('eggs.csv', 'rb') as csvfile:    spamreader = csv.reader(csvfile, delimiter=' ')    for row in spamreader:      print ', '.join(row)  # 如果不知道文件格式,sniffer就可以派上用場了  with open('eggs.csv', 'rb') as csvfile:    # 用sniffer推斷文件格式,從而得到dialect    dialect = csv.Sniffer().sniff(csvfile.read(1024))    print dialect.delimiter, dialect.quotechar    # 文件重新移動到頭部    csvfile.seek(0)    # 用推斷出來的dialect創建reader    reader = csv.reader(csvfile, dialect)    for row in reader:      print ', '.join(row)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 烟台市| 临泽县| 陵川县| 元谋县| 朝阳区| 容城县| 虹口区| 上饶市| 荆门市| 伽师县| 临泽县| 聂荣县| 武强县| 陇川县| 遵化市| 德兴市| 贵港市| 汉阴县| 射阳县| 密山市| 斗六市| 河东区| 天水市| 蒙阴县| 离岛区| 四会市| 怀仁县| 郎溪县| 邵东县| 德州市| 德保县| 岑溪市| 鹤庆县| 崇信县| 新津县| 光山县| 亳州市| 健康| 平远县| 巴中市| 越西县|