亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

CSV全稱為“Comma Separated Values”,是一種格式化的文件,由行和列組成,分隔符可以根據(jù)需要來變化。
如下面為一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)出報表,也通常用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的子類,并修改分隔符為”;”

# 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

如果僅僅僅是改變一兩個參數(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格式

通過csv.writer來生成一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)

實例

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

import csv


# dialect是訪問csv文件時需要指定的參數(shù)之一,用來確定csv文件的數(shù)據(jù)格式
# 下面這個函數(shù)列舉系統(tǒng)支持的dialect有哪些,默認(rèn)值是'excel',用戶也可
# 以從Dialect派生一個類,使用該類的實例作為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 用來推斷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'])

  # 通常你需要指定與寫入者相同的文件格式才能正確的讀取數(shù)據(jù)
  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創(chuàng)建reader
    reader = csv.reader(csvfile, dialect)

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

相關(guān)文章

  • Python?tkinter實現(xiàn)計算器功能

    Python?tkinter實現(xiàn)計算器功能

    這篇文章主要為大家詳細(xì)介紹了Python?tkinter實現(xiàn)計算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Python圖像處理之圖像與視頻處理基礎(chǔ)教程

    Python圖像處理之圖像與視頻處理基礎(chǔ)教程

    這篇文章主要介紹了Python圖像處理之圖像與視頻處理基礎(chǔ)教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • python 安裝impala包步驟

    python 安裝impala包步驟

    這篇文章主要介紹了python 安裝impala包步驟,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python的語法基礎(chǔ)你真的了解嗎

    Python的語法基礎(chǔ)你真的了解嗎

    這篇文章主要為大家詳細(xì)介紹了Python的語法基礎(chǔ),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • Python hashlib模塊加密過程解析

    Python hashlib模塊加密過程解析

    這篇文章主要介紹了Python hashlib模塊加密過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • django-xadmin根據(jù)當(dāng)前登錄用戶動態(tài)設(shè)置表單字段默認(rèn)值方式

    django-xadmin根據(jù)當(dāng)前登錄用戶動態(tài)設(shè)置表單字段默認(rèn)值方式

    這篇文章主要介紹了django-xadmin根據(jù)當(dāng)前登錄用戶動態(tài)設(shè)置表單字段默認(rèn)值方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • python 調(diào)用pyautogui 實時獲取鼠標(biāo)的位置、移動鼠標(biāo)的方法

    python 調(diào)用pyautogui 實時獲取鼠標(biāo)的位置、移動鼠標(biāo)的方法

    今天小編就為大家分享一篇python 調(diào)用pyautogui 實時獲取鼠標(biāo)的位置、移動鼠標(biāo)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python進(jìn)程multiprocessing.Process()的使用解讀

    Python進(jìn)程multiprocessing.Process()的使用解讀

    這篇文章主要介紹了Python進(jìn)程multiprocessing.Process()的使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python中的json內(nèi)置庫詳解

    Python中的json內(nèi)置庫詳解

    這篇文章主要介紹了Python中的json內(nèi)置庫詳解,在學(xué)習(xí)做自動化測試的過程中,python 里有一個內(nèi)置的 json 庫,必須要學(xué)習(xí)好,json 是用于存儲和交換數(shù)據(jù)的語法,是一種輕量級的數(shù)據(jù)交換式使用場景,需要的朋友可以參考下
    2023-08-08
  • python實現(xiàn)簡單的飛機(jī)大戰(zhàn)游戲

    python實現(xiàn)簡單的飛機(jī)大戰(zhàn)游戲

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)簡單的飛機(jī)大戰(zhàn)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05

最新評論