Comma Separated Values,簡稱csv,它是一種以逗号分隔數值的文件類型。在數據庫或電子表格中,它是最常見的導入導出格式,它以一種簡單而明了的方式存儲和共享數據,CSV文件通常以純文本的方式存儲數據表。今天,我将給大家分享在Python中如何操作CSV文件。
一、數據源首先,我們來看看本次操作的數據源,圖1 CSV文件是在Excel中打開的,圖2 CSV文件是在Notepad 中打開的,我們在圖2中可以看到數值之間是以逗号隔開的,每行末尾是CR(回車符)和LF(換行符)(請注意,Linux系統以LF結尾,MacOS系統以CR結尾)。
圖1
圖2
二、使用Python基本語法讀寫CSV文件使用基本語法讀取CSV文件中的數據大概思路是:獲取文件對象;讀取表頭;按逗号分隔符拆分表頭字段;使用for循環遍曆表中記錄數據,拆分後再次寫入另一張CSV文件中。詳細步驟和代碼如下所示:
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")
以上步驟完成後,将代碼保存為csvrw.py,然後在命令提示符中輸入:
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文件更簡單(請注意,pandas非内置庫,需要另行安裝),步驟如下:
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)
以上步驟完成後,在命令提示符中輸入相應命令即可(請參照<二>)
代碼如下:
OK,以上内容就是Python處理CSV文件的3種方式,内容比較簡單,感謝您的觀看!
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!