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

Python程序中用csv模塊來(lái)操作csv文件的基本使用教程

 更新時(shí)間:2016年03月03日 14:54:56   作者:Blue Wish  
這篇文章主要介紹了Python程序中用csv模塊來(lái)操作csv文件的基本使用教程,csv文件中也是格式化的數(shù)據(jù),只不過(guò)csv本身沒(méi)有XML和JSON那么流行...需要的朋友可以參考下

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

Title,Release Date,Director
And Now For Something Completely Different,1971,Ian MacNaughton
Monty Python And The Holy Grail,1975,Terry Gilliam and 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

csv可以比較方便的在不同應(yīng)用之間遷移數(shù)據(jù)??梢詫?shù)據(jù)批量導(dǎo)出為csv格式,然后倒入到其他應(yīng)用程序中。很多應(yīng)用中需要導(dǎo)出報(bào)表,也通常用csv格式導(dǎo)出,然后用Excel工具進(jìn)行后續(xù)編輯。

打印發(fā)行日期及標(biāo)題,逐行處理:

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

使用csv模塊處理:

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

改變分隔符

創(chuàng)建一csv.excel的子類(lèi),并修改分隔符為”;”

# File: csv-example-2.py
import csv
class 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

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

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

將數(shù)據(jù)存為CSV格式

通過(guò)csv.writer來(lái)生成一csv文件。

# File: csv-example-4.py
 
import csv
import 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)

實(shí)例

下面我們來(lái)看一個(gè)比較完整的例子,代碼說(shuō)明在注釋中:

import csv


# dialect是訪問(wèn)csv文件時(shí)需要指定的參數(shù)之一,用來(lái)確定csv文件的數(shù)據(jù)格式
# 下面這個(gè)函數(shù)列舉系統(tǒng)支持的dialect有哪些,默認(rèn)值是'excel',用戶(hù)也可
# 以從Dialect派生一個(gè)類(lèi),使用該類(lèi)的實(shí)例作為dialect參數(shù)。
print csv.list_dialects()


def test_writer():
  # csv文件必須以二進(jìn)制方式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 用來(lái)推斷csv文件的格式,不是很準(zhǔn)確
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'])

  # 通常你需要指定與寫(xiě)入者相同的文件格式才能正確的讀取數(shù)據(jù)
  with open('eggs.csv', 'rb') as csvfile:
    spamreader = csv.reader(csvfile, delimiter=' ')
    for row in spamreader:
      print ', '.join(row)

  # 如果不知道文件格式,sniffer就可以派上用場(chǎng)了
  with open('eggs.csv', 'rb') as csvfile:
    # 用sniffer推斷文件格式,從而得到dialect
    dialect = csv.Sniffer().sniff(csvfile.read(1024))
    print dialect.delimiter, dialect.quotechar

    # 文件重新移動(dòng)到頭部
    csvfile.seek(0)

    # 用推斷出來(lái)的dialect創(chuàng)建reader
    reader = csv.reader(csvfile, dialect)

    for row in reader:
      print ', '.join(row)

相關(guān)文章

  • Python 修改列表中的元素方法

    Python 修改列表中的元素方法

    今天小編就為大家分享一篇Python 修改列表中的元素方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • Pygame鼠標(biāo)進(jìn)行圖片的移動(dòng)與縮放案例詳解

    Pygame鼠標(biāo)進(jìn)行圖片的移動(dòng)與縮放案例詳解

    pygame是Python的第三方庫(kù),里面提供了使用Python開(kāi)發(fā)游戲的基礎(chǔ)包。本文將介紹如何通過(guò)Pygame實(shí)現(xiàn)鼠標(biāo)進(jìn)行圖片的移動(dòng)與縮放,感興趣的可以關(guān)注一下
    2021-12-12
  • 淺談Python3實(shí)現(xiàn)兩個(gè)矩形的交并比(IoU)

    淺談Python3實(shí)現(xiàn)兩個(gè)矩形的交并比(IoU)

    今天小編就為大家分享一篇淺談Python3實(shí)現(xiàn)兩個(gè)矩形的交并比(IoU),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • Pycharm?2020最新永久激活碼(附最新激活碼和插件)

    Pycharm?2020最新永久激活碼(附最新激活碼和插件)

    最近很多朋友的Pycharm激活時(shí)間又過(guò)期了,今天小編再把激活的方法匯總和工具分享一下,文中給大家分享兩種方式,需要的朋友直接拿去用吧
    2020-01-01
  • python socket實(shí)現(xiàn)聊天室

    python socket實(shí)現(xiàn)聊天室

    這篇文章主要為大家詳細(xì)介紹了python socket實(shí)現(xiàn)聊天室,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Matplotlib子圖的創(chuàng)建的實(shí)現(xiàn)

    Matplotlib子圖的創(chuàng)建的實(shí)現(xiàn)

    本文主要介紹了Matplotlib子圖的創(chuàng)建的實(shí)現(xiàn),包括fig.add_axes()創(chuàng)建子圖和plt.axes創(chuàng)建子圖這兩種方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • Python接口自動(dòng)化之文件上傳/下載接口詳解

    Python接口自動(dòng)化之文件上傳/下載接口詳解

    在接口測(cè)試中,經(jīng)常會(huì)涉及到文件上傳以及下載,下面這篇文章主要給大家介紹了關(guān)于Python接口自動(dòng)化之文件上傳/下載接口的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • 詳解Python字符串對(duì)象的實(shí)現(xiàn)

    詳解Python字符串對(duì)象的實(shí)現(xiàn)

    本文介紹了 python 內(nèi)部是如何管理字符串對(duì)象,以及字符串查找操作是如何實(shí)現(xiàn)的,感興趣的小伙伴們可以參考一下
    2015-12-12
  • 使用selenium模擬動(dòng)態(tài)登錄百度頁(yè)面的實(shí)現(xiàn)

    使用selenium模擬動(dòng)態(tài)登錄百度頁(yè)面的實(shí)現(xiàn)

    本文主要介紹了使用selenium模擬動(dòng)態(tài)登錄百度頁(yè)面,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 詳解python字節(jié)碼

    詳解python字節(jié)碼

    本篇文章給大家總結(jié)了關(guān)于python字節(jié)碼的相關(guān)知識(shí)點(diǎn)以及知識(shí)點(diǎn)分析,對(duì)此有需要的朋友參考學(xué)習(xí)下。
    2018-02-02

最新評(píng)論

香港| 鄂伦春自治旗| 九龙城区| 余江县| 禄劝| 依兰县| 腾冲县| 石棉县| 南安市| 永清县| 苗栗市| 贺兰县| 井陉县| 禄劝| 余江县| 拜城县| 宝丰县| 贵南县| 犍为县| 顺义区| 安福县| 桃源县| 安化县| 昭通市| 陇南市| 齐齐哈尔市| 武清区| 东海县| 横峰县| 林口县| 德化县| 如皋市| 吕梁市| 广平县| 南岸区| 安西县| 桂林市| 平定县| 丽江市| 常德市| 育儿|