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

十分鐘教會你用Python處理CSV文件

 更新時間:2022年06月11日 11:36:40   作者:程序員倉庫  
大家都知道使用csv文件可以較容易地存儲多行且列相同的數據,便于數據的讀取與解析,也常用于自動化測試過程中的數據參數化,下面這篇文章主要給大家介紹了關于如何利用Python處理CSV文件的相關資料,需要的朋友可以參考下

前言

在前幾年,如果你和嵌入式開發(fā)人員推薦Python,大概會是這樣一種場景:

A:”誒,老王,你看Python開發(fā)這么方便,以后會不會用到嵌入式設備?“

B:“別做夢了,那玩意兒速度賊慢,肯定滿足不了性能要求…”

但近幾年,隨著半導體行業(yè)的迅猛發(fā)展,嵌入式處理器的性能有了很大幅度的提高。與此同時,Python語言本身也在不斷優(yōu)化。因此,在嵌入式領域引入Python已經成為了必然趨勢。

今天,作者就來總結一下使用Python處理物聯網行業(yè)中一種常見的文件格式:csv文件。

Python庫:csv

Python中集成了專用于處理csv文件的庫,名為:csv。

csv 庫中有4個常用的對象:

  • csv.reader:以列表的形式返回讀取的數據。
  • csv.writer:以列表的形式寫入數據。
  • csv.DictReader:以字典的形式返回讀取的數據。
  • csv.DictWriter:以字典的形式寫入數據。

讀取csv文件

假設現在要讀取的csv文件內容如下:

可以看到,該文件的第一行表明數據類型,我們暫且稱之為header。從第2行開始,保存的是設備采集到的數據。

使用csv.reader讀取數據

# 導入 csv 庫
import csv

# 以讀方式打開文件
with open("data.csv", mode="r", encoding="utf-8-sig") as f:
    
    # 基于打開的文件,創(chuàng)建csv.reader實例
    reader = csv.reader(f)

    # 獲取第一行的header
    # header[0] = "設備編號"
    # header[1] = "溫度"
    # header[2] = "濕度"
    # header[3] = "轉速"
    header = next(reader)

    # 逐行獲取數據,并輸出
    for row in reader:
        print("{}{}: {}={}, {}={}, {}={}".format(header[0], row[0],
                                                 header[1], row[1],
                                                 header[2], row[2],
                                                 header[3], row[3]))

程序運行結果如下:

設備編號0: 溫度=31, 濕度=20, 轉速=1000
設備編號1: 溫度=30, 濕度=22, 轉速=998
設備編號2: 溫度=32, 濕度=23, 轉速=1005

使用csv.DictReader讀取數據

# 導入 csv 庫
import csv

# 打開文件
with open("data.csv", encoding="utf-8-sig", mode="r") as f:

    # 基于打開的文件,創(chuàng)建csv.DictReader實例
    reader = csv.DictReader(f)

    # 輸出信息
    for row in reader:
        print("設備編號{}: 溫度={}, 濕度={}, 轉速={}".format(row["設備編號"],
                                                   row["溫度"],
                                                   row["濕度"],
                                                   row["轉速"]))

程序運行結果如下:

設備編號0: 溫度=31, 濕度=20, 轉速=1000
設備編號1: 溫度=30, 濕度=22, 轉速=998
設備編號2: 溫度=32, 濕度=23, 轉速=1005

寫入csv文件

假設我們現在要創(chuàng)建一個csv文件,將數據保存為如下形式:

使用csv.writer寫入數據

# 導入 csv 庫
import csv

# 創(chuàng)建列表,保存header內容
header_list = ["設備編號", "溫度", "濕度", "轉速"]

# 創(chuàng)建列表,保存數據
data_list = [
    [0, 31, 20, 1000],
    [1, 30, 22, 998],
    [2, 32, 33, 1005]
]

# 以寫方式打開文件。注意添加 newline="",否則會在兩行數據之間都插入一行空白。
with open("new_data.csv", mode="w", encoding="utf-8-sig", newline="") as f:
    
    # 基于打開的文件,創(chuàng)建 csv.writer 實例
    writer = csv.writer(f)

    # 寫入 header。
    # writerow() 一次只能寫入一行。
    writer.writerow(header_list)

    # 寫入數據。
    # writerows() 一次寫入多行。
    writer.writerows(data_list)

使用csv.DictWriter寫入數據

# 導入 csv 庫
import csv

# 創(chuàng)建 header 列表
header_list = ["設備編號", "溫度", "濕度", "轉速"]

# 創(chuàng)建數據列表,列表的每個元素都是字典
data_list = [
    {"設備編號": "0", "溫度": 31, "濕度": 20, "轉速": 1000},
    {"設備編號": "1", "溫度": 30, "濕度": 22, "轉速": 998},
    {"設備編號": "2", "溫度": 32, "濕度": 23, "轉速": 1005},
]

# 以寫方式打開文件。注意添加 newline="",否則會在兩行數據之間都插入一行空白。
with open("new_data.csv", mode="w", encoding="utf-8-sig", newline="") as f:
    
    # 基于打開的文件,創(chuàng)建 csv.DictWriter 實例,將 header 列表作為參數傳入。
    writer = csv.DictWriter(f, header_list)

    # 寫入 header
    writer.writeheader()

    # 寫入數據
    writer.writerows(data_list)

關于寫入,需要注意:

  • 在打開文件時,需要添加newline = ""。否則,會在每2行有效內容之間添加一行空白。
  • 如果要保存的內容有中文,而且之后需要用Excel打開文件,那么需要選用utf-8-sig編碼。如果使用utf-8編碼,會導致使用Excel查看文件時中文亂碼。

總結 

到此這篇關于用Python處理CSV文件的文章就介紹到這了,更多相關Python處理CSV文件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python Pygame中精靈和碰撞檢測詳解

    Python Pygame中精靈和碰撞檢測詳解

    對于游戲中出現的每一樣東西,比如磚塊箱子水管地面,還有人物都可以看成是一個獨立的物體,所以每個物體類都繼承了pygame的精靈類pg.sprite.Sprite,這篇文章主要給大家介紹了關于Python Pygame中精靈和碰撞檢測的相關資料,需要的朋友可以參考下
    2021-10-10
  • 簡單了解Django應用app及分布式路由

    簡單了解Django應用app及分布式路由

    這篇文章主要介紹了簡單了解Django應用app及分布式路由,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • python多維數組切片方法

    python多維數組切片方法

    下面小編就為大家分享一篇python多維數組切片方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python實現可以斷點續(xù)傳和并發(fā)的ftp程序

    python實現可以斷點續(xù)傳和并發(fā)的ftp程序

    斷點續(xù)傳和并發(fā)是現在很多ftp程序都支持的功能,如果我們用python如何來做斷點續(xù)傳和并發(fā)了,今天來看一篇python實現斷點續(xù)傳和并發(fā)的ftp程序例子吧,具體如下。
    2016-09-09
  • python中numpy矩陣的零填充的示例代碼

    python中numpy矩陣的零填充的示例代碼

    本文主要介紹了python中numpy矩陣的零填充的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • Python 自動登錄淘寶并保存登錄信息的方法

    Python 自動登錄淘寶并保存登錄信息的方法

    這篇文章主要介紹了Python 自動登錄淘寶并保存登錄信息的方法,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • PyTorch之關于hook機制

    PyTorch之關于hook機制

    這篇文章主要介紹了PyTorch之關于hook機制的理解,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • python 環(huán)境搭建 及python-3.4.4的下載和安裝過程

    python 環(huán)境搭建 及python-3.4.4的下載和安裝過程

    這篇文章主要介紹了python 環(huán)境搭建 python-3.4.4的下載和安裝過程,文中給大家補充介紹了pycharm的基本用法,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-07-07
  • Python性能優(yōu)化技巧

    Python性能優(yōu)化技巧

    Python的批評者聲稱Python性能低效、執(zhí)行緩慢,但實際上并非如此:嘗試以下6個小技巧,可以加快Pytho應用程序。
    2015-03-03
  • Django 實現前端圖片壓縮功能的方法

    Django 實現前端圖片壓縮功能的方法

    今天小編就為大家分享一篇Django 實現前端圖片壓縮功能的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08

最新評論