天天看點

python能處理csv檔案_CSV檔案在Python中的幾種處理方式

Comma Separated Values,簡稱CSV,它是一種以逗号分隔數值的檔案類型。在資料庫或電子表格中,它是最常見的導入導出格式,它以一種簡單而明了的方式存儲和共享資料,CSV檔案通常以純文字的方式存儲資料表。今天,我将給大家分享在Python中如何操作CSV檔案。

一、資料源

首先,我們來看看本次操作的資料源,圖1 CSV檔案是在Excel中打開的,圖2 CSV檔案是在Notepad++中打開的,我們在圖2中可以看到數值之間是以逗号分隔開的,每行末尾是CR回車符和LF換行符(請注意,Linux系統以LF結尾,MacOS系統以CR結尾)。

python能處理csv檔案_CSV檔案在Python中的幾種處理方式
python能處理csv檔案_CSV檔案在Python中的幾種處理方式

二、使用Python基本文法讀寫CSV檔案

使用基本文法讀取CSV檔案中的資料大概思路是:擷取檔案對象,讀取表頭,按逗号分隔符拆分表頭字段,使用for循環語句擷取表體記錄資料,拆分後再次寫入另一張CSV檔案中(如果要将資料寫入xls*格式的檔案中,請參考前期公衆号文章),步驟如下:

Step 1:導入必要子產品,擷取輸入輸出檔案路徑。

import sys

infile = sys.argv[1]

outfile = sys.argv[2]

Step 2:使用open内置函數擷取檔案對象。

with open(infile, "r", newline='') as fr, open(outfile, "w", newline='') as fw:

Step 3:使用檔案對象的readline方法或者疊代器的next方法讀取表頭(檔案對象是一個疊代器對象,支援疊代協定),使用str.split方法對表頭進行拆分(注意,要使用strip函數去掉尾部換行符)。

header = next(fr)

header = header.strip()

header_list = header.split(",")

Step 4:既然表頭已經查分好了,我們需要将表頭寫入檔案對象中(注意尾部需要添加一個換行符哦)。

fw.write(",".join(map(str, header_list)) + "\n")

當然,上面的代碼也可以這麼寫:

print(*header_list, sep=",", file=fw)

Step 5:使用for循環讀取表體資料,并将其拆分成清單寫入到檔案中。

for row in fr:

row = row.strip()

row_list = row.split(",")

fw.write(",".join(map(str, header_list)) + "\n")

以上步驟完成後,在指令提示符中輸入:

python csvrw.py inputfile.csv outputfile.csv

輸入輸出csv檔案名稱以及腳本名稱請自定義,以上隻是舉例說明。

以上代碼如下:

python能處理csv檔案_CSV檔案在Python中的幾種處理方式

三、使用csv子產品讀寫CSV檔案

csv子產品是Python内置的一個子產品,它考慮了csv檔案中的各種複雜情況,平時處理檔案基本上使用此子產品,下面來看看csv子產品處理csv檔案的方式,其步驟如下:

Step 1:首先,導入必要子產品,擷取輸入輸出檔案路徑。

import sys

import csv

infile = sys.argv[1]

outfile = sys.argv[2]

Step 2:使用open内置函數擷取檔案對象。

with open(infile, "r", newline='') as incsv, open(outfile, "w", newline='') as outcsv:

Step 3:使用csv子產品中的reader和writer函數分别擷取reader和writer對象。

freader = csv.reader(incsv, delimiter=",")

fwriter = csv.writer(outcsv, delimiter=",")

Step 4:使用for循環語句讀取和寫入資料。

for rowlist in freader:

fwriter.writerow(rowlist)

以上步驟完成後,在指令提示符中輸入相應指令即可(請參照)

代碼如下:

python能處理csv檔案_CSV檔案在Python中的幾種處理方式

四、使用pandas讀寫CSV檔案

pandas庫是一個強大的資料處理和資料分析庫,使用pandas處理csv檔案更簡單,其步驟如下:

Step 1:首先,導入必要子產品,擷取輸入輸出檔案路徑。

import sys

import pandas as pd

infile = sys.argv[1]

outfile = sys.argv[2]

Step 2:使用pandas的read_csv方法将資料存儲到一個DataFrame對象中。

dataframe = pd.read_csv(infile)

Step 3:然後使用DataFrame的to_csv方法将其輸出到另一張csv表中。

dataframe.to_csv(outfile, index=False)

以上步驟完成後,在指令提示符中輸入相應指令即可(請參照)

代碼如下:

python能處理csv檔案_CSV檔案在Python中的幾種處理方式