CSV 表示 “Comma-Separated Values (逗號分隔的值) ” , CSV 文件是簡化的電子表格,實際為純文本文件。
創新互聯建站服務項目包括龍口網站建設、龍口網站制作、龍口網頁制作以及龍口網絡營銷策劃等。多年來,我們專注于互聯網行業,利用自身積累的技術優勢、行業經驗、深度合作伙伴關系等,向廣大中小型企業、政府機構等提供互聯網行業的解決方案,龍口網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到龍口省份的部分城市,未來相信會繼續擴大服務區域并繼續獲得客戶的支持與信任!
一個 CSV 文件,格式是這樣的:
因為 CSV 文件中的每個單元格都是以逗號分割,所以也許有人會對每行文本調用 split() 方法,來解析 CSV 文件。但 CSV 文件也有自己的轉義字符,通過轉義字符,允許逗號和其他字符作為值的一部分,但單純使用 split() 方法不能處理這些轉義字符。因為這些潛在的缺陷,所以建議總是使用 csv 模塊來讀寫 CSV 文件。
csv 模塊是 Python 自帶的,所以可以直接導入。
要使用 csv 模塊從 CSV 文件中讀取數據,我們需要創建一個 Reader 對象。 通過 Reader 對象,我們可以迭代遍歷 CSV 文件中的每一行內容。
運行結果:
要用 csv 模塊讀取 CSV 文件,首先先使用 open() 函數打開它 ,就像打開任何其他文本文件一樣。然后將它傳遞給 csv .reader() 函數。 這個函數將返回一個 Reader 對象。注意,csv .reader() 函數不接受文件名作為入參。
要訪問 Reader 對象中的值,最直接的方法,就是利用 list() 將它轉換成一個普通 Python 列表。它實際為一個包含列表的列表,用于表示二維數據。
我們還可以使用表達式 data [ row ][ col ] 來訪問 CSV 中特定行和列的值。其中, row 是 data 中一個列表的下標, col 是該列表中,我們想訪問的項的下標:
運行結果:
運行結果:
Writer 對象可以讓我們把數據寫入 CSV 文件。
運行結果:
在 Windows 上,需要為 open() 函數的 newline 關鍵字參數傳入一個空字符串。如果沒有設置 newline 參數, output.csv 中的行距將變為兩倍,如下圖所示。
如果寫入的內容包含逗號,那么 csv 模塊會自動加上雙引號,對其進行轉義,如下例所示。
運行結果:
我們也可以利用 delimiter ,來制作 TSV 文件,TSV 是Tab-separated values的縮寫,即以制表符作為分隔符的文件;利用 lineterminator 參數來設定行距。
運行結果:
這里利用 lineterminator='\n\n\n' 將行與行之間的字符變為三個換行符,效果就是實現了 3 倍行距。
python中讀取csv方法有3種:
第一種,普通方法讀取(open函數打開,然后使用for循環讀取內容);
第二種,使用用CSV標準庫讀取;
第三種,用pandas模塊讀取。
Python讀取CSV文件方法如下:
如下是一個CVS文件
使用Python打開CSV可以直接使用open函數打開,然后使用reader函數讀取內容,實現代碼如下:
運行結果如下:
更多Python相關技術文章,請訪問Python教程欄目進行學習!以上就是小編分享的關于python中怎么讀取csv文件的詳細內容希望對大家有所幫助,更多有關python教程請關注環球青藤其它相關文章!
csv文件具有格式簡單,快速存取,兼容性好等特點,工程、金融、商業等很多數據文件都是采用csv文件保存和處理。工作中數據處理也用到了csv,簡要總結下使用經驗,特別是那些由于本地兼容性導致的與官方文檔的差異使用。
csv(comma Seperated Values)文件的格式非常簡單,類似一個文本文檔,每一行保存一條數據,同一行中的各個數據通常采用逗號(或tab)分隔。
python自帶了csv模塊,專門用于處理csv文件的讀取和存檔。
csv模塊中,主要由兩種方式存取csv文件:函數方法;類方法。
csv.reader(csvfile,dialect ='excel',** fmtparams)
返回一個reader對象,它將迭代給定csvfile中的行。
csvfile可以是任何支持迭代器協議的對象,并在每次next()調用其方法時返回一個字符串- 文件對象和列表對象都是合適的。如果csvfile是一個文件對象,那么它必須在平臺上以“b”標志打開,這會產生影響。可以給出可選的 dialect 參數,該參數用于定義特定于CSV方言的一組參數。它可以是類的子類的實例,也可以是函數Dialect返回的字符串之一 list_dialects()。其他可選的fmtparams可以給出關鍵字參數來覆蓋當前方言中的各個格式參數。
csv.writer(csvfile,dialect ='excel',** fmtparams)
返回一個編寫器對象,負責將用戶的數據轉換為給定的類文件對象上的分隔字符串。
csvfile可以是帶有write()方法的任何對象 。如果csvfile是一個文件對象,那么它必須在平臺上以“b”標志打開,這會產生影響。 可以給出可選的dialect參數,該參數用于定義特定于CSV方言的一組參數。它可以是類的子類的實例,也可以是函數Dialect返回的字符串之一 list_dialects()。可以給出其他可選的fmtparams關鍵字參數來覆蓋當前dialect中的各個格式參數。
class csv.DictReader(f,fieldnames = None,restkey = None,restval = None,dialect ='excel',* args,** kwds)
創建一個像常規閱讀器一樣操作的對象,但將讀取的信息映射到一個dict,其鍵由可選的 fieldnames 參數給出。 字段名 的參數是一個序列,其元素與輸入數據的順序中的字段相關聯。這些元素成為結果字典的關鍵。如果省略 fieldnames 參數,則文件 f 的第一行中的 值 將用作字段名。如果讀取的行包含的字段多于字段名序列,則將剩余數據添加 為由restkey 值鍵入的序列。如果讀取的行的字段數少于字段名序列,則其余的鍵將采用可選的 restval 參數的值。任何其他可選或關鍵字參數都將傳遞給基礎 reader 實例。
class csv.DictWriter(f,fieldnames,restval ='',extrasaction ='raise',dialect ='excel',* args,** kwds)
創建一個像常規編寫器一樣操作的對象,但將字典映射到輸出行。的字段名的參數是一個序列識別在哪些值在傳遞給字典中的順序按鍵的writerow()方法被寫入到文件?F。如果字典缺少字段名中的鍵,則可選的restval參數指定要寫入的值。如果傳遞給方法的字典包含在字段名中找不到的鍵,則可選的extrasaction參數指示要采取的操作。如果設置為a 則被提升。如果設置為writerow()'raise'ValueError'ignore',字典中的額外值將被忽略。任何其他可選或關鍵字參數都將傳遞給基礎 writer實例。
請注意,與DictReader類不同,它的fieldnames參數DictWriter不是可選的。由于Python的dict 對象沒有排序,因此沒有足夠的信息來推斷應該將行寫入文件f的順序。
新聞標題:函數pythoncsv 函數python
文章出自:http://vcdvsql.cn/article32/dopiosc.html
成都網站建設公司_創新互聯,為您提供網站導航、關鍵詞優化、定制網站、動態網站、品牌網站設計、電子商務
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯