欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python CSV 文件解析和生成方法示例

 更新時間:2022年07月15日 08:45:13   作者:常偉佳  
這篇文章主要為大家介紹了Python CSV 文件的解析和生成方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

思路

  • 簡單的生成和讀取 CSV
  • CSV 文件格式
  • 使用 csv 庫

Python with CSV

先有個很樸素的生成和解析的方法。

生成:

data = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9],
]
for cow in data:
    print(','.join(map(str, cow)))

生成結(jié)果:

1,2,3
4,5,6
7,8,9

解析

s = """1,2,3
4,5,6
7,8,9
"""
cows = s.splitlines()
data = []
for cow in cows:
    items = cow.split(',')
    data.append(items)
# data
# [['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9']]

但是顯示的數(shù)據(jù)可能不這么理想,比如其中的某一項有 , 的時候就會有問題了。

CSV 格式

CSV 中有幾個概念需要先了解下。CSV 雖然是 Comma-separated values 但并不一定用逗號來分隔,也可以用其他的來分隔。同時 CSV 也沒有一個明確的規(guī)范。

從 Python 的 csv 的文檔中看到的一些關(guān)鍵術(shù)語:

delimiter,最基本的分隔符

quotechar,如果某個 item 中包含了分隔符,應該用 quotechar 把它包裹起來

doublequote,如果某個 item 中出現(xiàn)了 quotechar 那么可以把整個內(nèi)容用 quotechar 包裹,并把 quotechar double 一下用來做區(qū)分

escapechar,如果不用 doublequote 的方法還可以用 escapechar 來輔助

lineterminator,每一行的結(jié)束符,默認的是 \r\n

quoting,可以選擇任何時候都使用 quotechar 來包裹內(nèi)容,或者是需要用到的時候再用,或者不用

skipinitialspace,是否忽略分隔符后面跟著的空格

strict,這個是 Python 自己的,是否拋要異常

(上面的可能沒有覆蓋所有的細節(jié),但大概就是這樣的情況)

使用 Python 的 csv 庫

13.1. csv — CSV File Reading and Writing — Python 2.7.12 documentation

很簡單的例子就是

import csv
with open('some.csv', 'rb') as f:
    reader = csv.reader(f)
    for row in reader:
        print row
import csv
with open('some.csv', 'wb') as f:
    writer = csv.writer(f)
    writer.writerows(someiterable)

另外這里面有個 dialect 的概念,就是用一個 dialect 來定義上面提到的那些解析規(guī)則。

可以自己注冊(csv.register_dialect )、列出所有的(csv.list_dialects)、獲取某個(csv.get_dialect)。

默認是用逗號分隔的 excel 的 dialect,所以如果沒有特殊情況應該直接使用默認值就夠了。

其他

這次先只把基本概念了解下,后面可能還有文件編碼之類的坑,到時遇到了再回來更新。

參考

PEP 305 -- CSV File API | Python.org

13.1. csv — CSV File Reading and Writing — Python 2.7.12 documentation

以上就是Python CSV 文件解析和生成方法示例的詳細內(nèi)容,更多關(guān)于Python CSV文件解析生成的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 如何寫好?Python?的?Lambda?函數(shù)

    如何寫好?Python?的?Lambda?函數(shù)

    這篇文章主要介紹了如何寫好?Python?的?Lambda?函數(shù),Lambda?函數(shù)是?Python?中的匿名函數(shù),下面文章通過介紹Lambda?函數(shù)的相關(guān)內(nèi)容展開文章主題,需要的小伙伴可以參考一下
    2022-03-03
  • Python實現(xiàn)的個人所得稅計算器示例

    Python實現(xiàn)的個人所得稅計算器示例

    這篇文章主要介紹了Python實現(xiàn)的個人所得稅計算器,涉及Python條件判斷與數(shù)值運算相關(guān)操作技巧,需要的朋友可以參考下
    2018-06-06
  • python實現(xiàn)給微信指定好友定時發(fā)送消息

    python實現(xiàn)給微信指定好友定時發(fā)送消息

    這篇文章主要為大家詳細介紹了python實現(xiàn)給微信指定好友定時發(fā)消息,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • python發(fā)送arp欺騙攻擊代碼分析

    python發(fā)送arp欺騙攻擊代碼分析

    這篇文章主要介紹了python發(fā)送arp欺騙攻擊的方法,大家碰到這樣的事情可以預防一下
    2014-01-01
  • python抓取網(wǎng)站的圖片并下載到本地的方法

    python抓取網(wǎng)站的圖片并下載到本地的方法

    今天小編就為大家分享一篇python抓取網(wǎng)站的圖片并下載到本地的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • python pandas loc 布爾索引示例說明

    python pandas loc 布爾索引示例說明

    loc跟iloc的區(qū)別,首先loc是location的意思,和iloc中i的意思是指integer,所以它只接受整數(shù)作為參數(shù),詳情見下面
    2022-03-03
  • Python操作MongoDB詳解及實例

    Python操作MongoDB詳解及實例

    這篇文章主要介紹了Python操作MongoDB詳解及實例的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Django入門使用示例

    Django入門使用示例

    這篇文章主要介紹了Django入門使用示例,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • Python數(shù)據(jù)挖掘Pandas詳解

    Python數(shù)據(jù)挖掘Pandas詳解

    這篇文章主要介紹了Python數(shù)據(jù)挖掘Pandas,pandas是基于numpy模塊構(gòu)建的,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • python 定時修改數(shù)據(jù)庫的示例代碼

    python 定時修改數(shù)據(jù)庫的示例代碼

    這篇文章主要介紹了python 定時修改數(shù)據(jù)庫的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04

最新評論