本文目錄一覽:
Python csv庫整理(部分)
近期,筆者到一些數據競賽網站進行觀察學習,發現很多數據是以csv文件處理的(廢話).因而,磨刀不誤砍柴工,筆者先對Python的csv庫進行學習.
csv模塊實現了CSV格式表單數據的讀寫.這可以以一個兼容Excel的方式讀寫其數據文件,csv模塊中的reader和writer類被用來讀寫序列化的數據.也可以使用DictReader類和DictWriter類以字典的方式讀取數據.
返回一個reader對象,該對象逐行遍歷csvfile(文件和列表均適用,但是文件的話應該newline=”.
默認每一行讀取一個字元串組成的列表(而非數值,除非修改QUOTE_NONUMERIC).
返回一個writer對象,負責將數據在給定的文件類對象上轉換成帶分隔符的字元串.csvfile(只要該對象有write()方法,文件的話應該newline=”.)
這兩個方法可以把name字元串和dialect關聯/脫鉤.dialect可以是Dialect的子類,或者fmtparams的關鍵字參數.
返回一個Dialect對象為name的變種,若其未註冊,拋出Error.
返回已經註冊的所有變種的 名稱
返回當前解析器允許的最大欄位大小,如果制定了參數,參數將成為新的最大欄位大小.
該對象操作上類似reader,但是把每行中的信息映射到一個字典,字典的鍵由fieldnames給出
fieldname的參數是一個序列sequence [1] ,如果參數預設,默認第一行的值作為欄位名.
如果某一行中的欄位多於欄位名(比如說約定有5項屬性,但是這一行卻出現了6個數據),則其餘欄位將放入列表中,欄位名由 restkey 指定(默認為 None)。如果非空白行的欄位少於欄位名,則缺少的值將用 None 填充。
#其實這玩意應該就跟各種填表裡面的備註用法差不多.
3.8中返回的行是dict類型.
該對象操作上類似reader,但是把每行中的信息映射到一個字典,字典的鍵由fieldnames給出,fieldname參數是不可預設的.restval用來指定字典缺少鍵的時候要寫入的值.extrasaction用於指定關鍵鍵在fieldname中找不到的情況的處理機制.’raise’引發ValueError,而’ignore’則會被忽略.
這個類被用來瑞段csv文件的格式
以下諸類均在括弧中標註了在其變種註冊表中的名稱
定義了Excel生成的csv文件的常規屬性.(‘excel’)
定義了Excel生成的,tab分割的csv文件的常規屬
性.(‘excel-tab’)
定義了UNIX系統上生成的csv文件的常規屬性(‘unix’):
任意可能發生的csv庫函數錯誤.
參考鏈接
Python3.8.2文檔中關於csv庫的相關文檔
python生成csv文件一定要用vscode打開嗎
python生成csv文件一定要用vscode打開的,因為csv編輯的數據都是通過固定的數據格式進行生成的,只能用vscode軟體才能識別數據正常進行打開
Python之csv模塊
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的順序。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/292036.html