CSV(逗號分隔值)是一種用於存儲表格數據的通用文件格式,而列表是 Python 中用於輕鬆進行數據操作的基本數據結構。在 Python 中將 CSV 轉換為列表,能實現數據的無縫處理、分析及與其他工作流的集成。雖然 Python 內置的 csv 模塊可滿足基礎需求,但 Spire.XLS for Python 憑藉類電子表格的直觀界面,能更簡化結構化 CSV 數據的處理流程。
本文將通過實用代碼示例介紹如何使用 Python 讀取 CSV 並轉化為列表,覆蓋從基礎到進階的各類場景。
Spire.XLS for Python試用下載,請聯繫官方授權代理商慧都科技
歡迎加入Spire技術交流Q羣(125237868),與更多小夥伴一起提升文檔開發技能~
為何選擇 Spire.XLS ?
Spire.XLS 是一款強大的電子表格處理庫,在 CSV 處理方面優勢顯著:
- 直觀的索引:行列索引均從1開始(與電子表格邏輯一致)。
- 靈活的分隔符:可輕鬆指定自定義分隔符(逗號、製表符、分號等均可)。
- 結構化訪問:將 CSV 數據視為工作表,行列遍歷更簡單直接。
- 強大的數據處理:自動解析數字、日期、字符串等類型,無需額外編寫解析代碼。
安裝步驟
開始前,通過 pip 安裝Spire.XLS for Python:
pip install Spire.XLS
該命令會安裝最新穩定版本,安裝完成後即可直接在項目中使用。
基礎轉換:Python 將 CSV 轉換為列表
若 CSV 文件無標題行(純數據行),Spire.XLS 可直接讀取行數據並將其轉換為“列表的列表”(每個子列表對應 CSV 中的一行)。
操作步驟:
- 導入 Spire.XLS 模塊;
- 創建 Workbook 對象並加載 CSV 文件;
- 獲取第一個工作表(Spire.XLS 會自動將 CSV 解析為工作表);
- 遍歷行和單元格,提取值並存入 Python 列表。
CSV 轉列表的 Python 代碼示例:
from spire.xls import *
from spire.xls.common import *
# 初始化工作簿並加載 CSV 文件
workbook = Workbook()
workbook.LoadFromFile("數據.csv", ",")
# 獲取第一個工作表
sheet = workbook.Worksheets[0]
# 初始化列表用於存儲轉換後的數據
data_list = []
# 遍歷工作表的每一行
for i in range(sheet.Rows.Length):
row = [] # 存儲當前行的數據
# 遍歷當前行的每一列
for j in range(sheet.Columns.Length):
cell_value = sheet.Range[i + 1, j + 1].Value
row.append(cell_value)
data_list.append(row) # 將當前行數據加入總列表
# 打印轉換結果
for row in data_list:
print(row)
# 釋放資源
workbook.Dispose()
輸出效果:
進階操作:將 CSV 轉換為字典列表
對於含標題行的CSV文件,轉換為“字典列表”(鍵為標題、值為行數據)更便於數據操作。
CSV 轉字典列表的 Python 代碼示例:
from spire.xls import *
# 初始化工作簿並加載CSV文件
workbook = Workbook()
workbook.LoadFromFile("示例.csv", ",")
# 獲取第一個工作表
sheet = workbook.Worksheets[0]
# 提取標題行(第一行數據作為字典的鍵)
headers = []
for j in range(sheet.Columns.Length):
headers.append(sheet.Range[1, j + 1].Value) # 1基索引取第一行
# 初始化列表用於存儲字典
dict_list = []
# 遍歷數據行(從第二行開始,跳過標題行)
for i in range(1, sheet.Rows.Length):
row_dict = {} # 存儲當前行的鍵值對
for j in range(sheet.Columns.Length):
key = headers[j] # 標題作為鍵
value = sheet.Range[i + 1, j + 1].Value # 當前單元格值作為值
row_dict[key] = value
dict_list.append(row_dict) # 將字典加入列表
# 打印轉換結果
for record in dict_list:
print(record)
# 釋放資源
workbook.Dispose()
代碼説明:
- 加載CSV:通過 Workbook 類的 LoadFromFile() 方法加載文件,指定分隔符;
- 提取標題:將工作表第一行數據作為字典的鍵,保留列的含義;
- 映射行到字典:遍歷數據行時,用標題作為鍵、單元格內容作為值,構建字典並加入列表。
輸出效果:

特殊場景處理
含自定義分隔符的 CSV(如製表符、分號)
處理非逗號分隔的 CSV 文件(如製表符分隔的 TSV 文件)時,只需在 LoadFromFile 中指定分隔符:
# 加載製表符分隔的文件(TSV)
workbook.LoadFromFile("data.tsv", "\t")
# 加載分號分隔的文件(常見於歐洲地區數據)
workbook.LoadFromFile("data_eu.csv", ";")
空值清理技巧
CSV 中的空單元格會被轉換為空字符串('')。若需將空值替換為自定義內容(如 “N/A”),可修改單元格值提取邏輯:
# 為空值設置默認值“N/A”
cell_value = sheet.Range[i + 1, j + 1].Value or "N/A"
總結
使用 Spire.XLS 在 Python 中將 CSV 轉換為列表的方法十分高效、靈活且對初學者友好。無論您需要“列表的列表”存儲原始數據,還是“字典列表”用於結構化分析,該庫都能高效處理解析、索引及資源管理。通過本文示例,你可輕鬆將此轉換集成到數據管道、分析腳本或應用程序中。
Spire.XLS for Python試用下載,請聯繫官方授權代理商慧都科技
歡迎加入Spire技術交流Q羣(125237868),與更多小夥伴一起提升文檔開發技能~
常見問題解答
Q1:Spire.XLS 是否適用於大型 CSV 文件?
A: 是的,Spire.XLS 能高效處理大型文件。但對於超大規模數據集(數百萬行),建議分塊處理或結合大數據工具;對於常規業務數據,其性能表現優異。
Q2:與 pandas 相比,用 Spire.XLS 轉換 CSV 到列表有何優勢?
A: Spire.XLS 提供了對解析過程更多的控制,並且不需要額外的數據科學依賴。雖然 pandas 非常適合分析,但當您需要精確控制 CSV 解析或在沒有 pandas 的環境中工作時,Spire.XLS 是理想選擇。
Q3:轉換為列表時,如何處理帶有標題的 CSV 文件?
A: 推薦使用“字典列表”轉換法:提取第一行作為標題(字典的鍵),後續行數據作為值,既能保留列含義,又便於通過列名訪問數據。
Q4:如何僅將 CSV 中的特定列轉換為列表?
A: 可通過指定目標列索引修改內循環邏輯:
# 僅轉換第1列和第3列(對應索引0和2)
target_columns = [0, 2]
for i in range(sheet.Rows.Length):
row = []
for j in target_columns:
cell_value = sheet.Range[i + 1, j + 1].Value
row.append(cell_value)
data_list.append(row)