日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 删除csv第一行_python 标准库学习之 csv

發(fā)布時間:2023/12/2 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 删除csv第一行_python 标准库学习之 csv 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文由作者 憑海臨風 授權(quán)刊登。原文地址:https://jeffsui.github.io/2020/01/02/python-standard-library-csv/

文檔路徑

官方文檔:https://docs.python.org/zh-cn/3.8/library/csv.html

CSV 文件格式

文件擴展名為.csv,通用的電子表格文件格式,經(jīng)常使用在數(shù)據(jù)分析中。

分隔符可能有所差別。python 中的 csv 模塊提供了對 csv 文件的讀寫操作,非常方便。

csv 常用方法

reader

'excel',?***fmtparams)

返回一個 reader 對象,該對象遍歷 csvfile。csv 對象可以是任何對象,只要這個對象支持 iteratable 協(xié)議,并在每次調(diào)用 __next__() 方法時都返回字符串即可。如果 csvfile 是文件對象,則打開它時應使用 newline=''。可選參數(shù) dialect 是用于不同的 csv 文件類型,它可以是 Dialect 類的子類的實例,也可以是 list_dialects() 函數(shù)返回的字符串之一。完整的解釋可以參考 csv文件格式參數(shù)。

csv 文件的每一行都會默認當做字符串列表解析,除非指定了 QUOTE_NONNUMERIC 格式選項(在這種情況下,未加引號的字段會轉(zhuǎn)換為浮點數(shù)),否則不會執(zhí)行自動數(shù)據(jù)類型轉(zhuǎn)換。

一個讀文件例子

import?csv

writer

'excel',?**fmtparams)

返回一個 writer 對象,該對象負責將用戶的數(shù)據(jù)在給定的文件類對象上轉(zhuǎn)換為帶分隔符的字符串。csvfile 可以是具有 write() 方法的任何對象。如果 csvfile 是文件對象,則打開它時應使用 newline=''。

為了盡量簡化與數(shù)據(jù)庫 API 模塊之間的對接,None 值會寫入為空字符串。雖然這個轉(zhuǎn)換是不可逆的,但它讓 SQL 空數(shù)據(jù)值轉(zhuǎn)儲到 CSV 文件更容易,而無需預處理從 cursor.fetch* 調(diào)用返回的數(shù)據(jù)。寫入前,所有非字符串數(shù)據(jù)都先用 str() 轉(zhuǎn)化為字符串再寫入。

一個寫文件例子

import?csv

register_dialect

csv.register_dialect(name[,?dialect[,?**fmtparams]])

將 name 與 dialect 關聯(lián)起來。name 必須是字符串。要指定變種 (dialect),可以給出 Dialect 的子類,或給出 fmtparams 關鍵字參數(shù),或兩者都給出(此時關鍵字參數(shù)會覆蓋 dialect 參數(shù))。有關方言和格式設置參數(shù)的完整詳細信息,請參見 方言格式參數(shù) 部分。

其他方法:

  • csv.unregister_dialect(name)
    從變種注冊表中刪除 name 對應的變種。如果 name 不是已注冊的變種名稱,則拋出 Error 異常。

  • csv.get_dialect(name)
    返回 name 對應的變種。如果 name 不是已注冊的變種名稱,則拋出 Error 異常。該函數(shù)返回的是不可變的 Dialect 對象。

  • csv.list_dialects()
    返回所有已注冊變種的名稱。

  • csv.field_size_limit([new_limit])
    返回解析器當前允許的最大字段大小。如果指定了 new_limit,則它將成為新的最大字段大小。

csv 模塊定義的類

DictReader

class?csv.DictReader(*f*,?*fieldnames=None*,?*restkey=None*,?*restval=None*,?*dialect='excel'*,?**args*,?***kwds*)

創(chuàng)建一個對象,該對象在操作上類似于常規(guī) reader,但是將每行中的信息映射到一個 dict,該 dict 的鍵由 fieldnames 可選參數(shù)給出。

fieldnames 參數(shù)是一個 sequence。如果省略 fieldnames,則文件 f 第一行中的值將用作字段名。無論字段名是如何確定的,字典都將保留其原始順序。

如果某一行中的字段多于字段名,則其余字段將放入列表中,字段名由 restkey 指定(默認為 None)。如果非空白行的字段少于字段名,則缺少的值將用 None 填充。

所有其他可選或關鍵字參數(shù)都傳遞給底層的 reader 實例。

3.8 中,返回的行是 dict 類型。

一個使用DictReader例子

import?csv

DictWriter

class?csv.DictWriter(f,?fieldnames,?restval='',?extrasaction='raise',?dialect='excel',?**args,?**kwds)

創(chuàng)建一個對象,該對象在操作上類似常規(guī) writer,但會將字典映射到輸出行。fieldnames 參數(shù)是由鍵組成的 序列,它指定字典中值的順序,這些值會按指定順序傳遞給 writerow() 方法并寫入文件 f。如果字典缺少 fieldnames 中的鍵,則可選參數(shù) restval 用于指定要寫入的值。如果傳遞給 writerow() 方法的字典的某些鍵在 fieldnames 中找不到,則可選參數(shù) extrasaction 用于指定要執(zhí)行的操作。如果將其設置為默認值 'raise',則會引發(fā) ValueError。如果將其設置為 'ignore',則字典中的其他鍵值將被忽略。所有其他可選或關鍵字參數(shù)都傳遞給底層的 writer 實例。

注意,與 DictReader 類不同,DictWriter 類的 fieldnames 參數(shù)不是可選參數(shù)

一個使用DictWriter 寫入文件例子

import?csv

其他方法:

  • class csv.Dialect

    Dialect 類是主要依賴于其屬性的容器類,用于將定義好的參數(shù)傳遞給特定的 reader 或 writer 實例。

  • class csv.excel

    excel 類定義了 Excel 生成的 CSV 文件的常規(guī)屬性。它在變種注冊表中的名稱是 'excel'。

  • class csv.excel_tab

    excel_tab 類定義了 Excel 生成的、制表符分隔的 CSV 文件的常規(guī)屬性。它在變種注冊表中的名稱是 'excel-tab'。

  • class csv.unix_dialect

    unix_dialect 類定義了在 UNIX 系統(tǒng)上生成的 CSV 文件的常規(guī)屬性,即使用 '\n' 作為換行符,且所有字段都有引號包圍。它在變種注冊表中的名稱是 'unix'。

class csv.Sniffer

Sniffer 類用于推斷 CSV 文件的格式。

Sniffer 類提供了兩個方法:

  • sniff(sample, delimiters=None)

    分析給定的 sample 并返回一個 Dialect 子類,該子類中包含了分析出的格式參數(shù)。如果給出可選的 delimiters 參數(shù),則該參數(shù)會被解釋為字符串,該字符串包含了可能的有效定界符。

  • has_header(sample)

    分析示例文本(假定為 CSV 格式),如果第一行很可能是一系列列標題,則返回 True。

一個使用 Sniffer 的例子:

with?open(

csv 中定義的常量

  • csv.QUOTE_ALL

    指示 writer 對象給所有字段加上引號。

  • csv.QUOTE_MINIMAL

    指示 writer 對象僅為包含特殊字符(例如 定界符、引號字符 或 行結(jié)束符 中的任何字符)的字段加上引號。

  • csv.QUOTE_NONNUMERIC

    指示 writer 對象為所有非數(shù)字字段加上引號。指示 reader 將所有未用引號引出的字段轉(zhuǎn)換為 float 類型。

  • csv.QUOTE_NONE

    指示 writer 對象不使用引號引出字段。當 定界符 出現(xiàn)在輸出數(shù)據(jù)中時,其前面應該有 轉(zhuǎn)義符。如果未設置 轉(zhuǎn)義符,則遇到任何需要轉(zhuǎn)義的字符時,writer 都會拋出 Error 異常。指示 reader 不對引號字符進行特殊處理。

csv 模塊定義了以下異常:

  • exception csv.Error

    該異常可能由任何發(fā)生錯誤的函數(shù)拋出。

備注

如果沒有指定 newline='',則嵌入引號中的換行符將無法正確解析,并且在寫入時,使用 \r\n 換行的平臺會有多余的 \r 寫入。由于 csv 模塊會執(zhí)行自己的(通用)換行符處理,因此指定 newline='' 應該總是安全的。

總結(jié)

csv 模塊是一個非常實用的處理 csv 文件的標準庫,提供了兩個核心類。一個是把 csv 文件對象當作字符串列表解析 csv 文件的類,另一個是把 csv 文件對象當作字典解析的類。

End

碼農(nóng)升級

長按二維碼關注

你點的每個在看,我都認真當成了喜歡

總結(jié)

以上是生活随笔為你收集整理的python 删除csv第一行_python 标准库学习之 csv的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。