當前位置:
首頁 > 最新 > CSV文件在Python中的幾種處理方式

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文件中的數據大概思路是:獲取文件對象,讀取表頭,按逗號分隔符拆分表頭欄位,使用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)) + "
")

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

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)) + "
")

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

python csvrw.py inputfile.csv outputfile.csv

輸入輸出csv文件名稱以及腳本名稱請自定義,以上只是舉例說明。

以上代碼如下:

三、使用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)

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

代碼如下:

四、使用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 的精彩文章:

TAG:Python |