前言針對有列標題的csv檔案,建議使用dictreader/dictwriter進行讀寫。
1、dictreader
a.讀某一列:
def
read_csv_col
(file_path, label)
:'''
讀取csv檔案的某一列資料,csv檔案的第一行為列名
:param file_path: 檔案路徑
:param label: 某一列的列名(第一行)
:return: 指定列的所有資料(列表形式)
'''col =
list()
with
open
(file_path,encoding=
'utf-8'
)as f:
reader = csv.dictreader(f)
for row in reader:
cell = row[label]
return col
if __name__ ==
'__main__'
: file_path=
'./datas/test.csv'
results=read_csv_col(file_path,
'姓名'
)print
(results)
測試檔案:
控制台輸出結果:
b.讀整個檔案內容:
def
read_csv_dict
(file_path)
:'''
讀取csv檔案的所有,csv檔案的第一行為列標題
:param file_path: 檔案路徑
:return: 所有行的資料(每一行為字典,字典的key為列標題)
'''rows=
list()
with
open
(file_path,encoding=
'utf-8'
)as f:
reader = csv.dictreader(f)
for row in reader:
new_row=
dict()
for label in row:
new_row[label]
=row[label]
return rows
if __name__ ==
'__main__'
: file_path=
'./datas/test.csv'
results=read_csv_dict(file_path)
print
(results)
檔案內容:
控制台輸出
2、dictwriter
追加寫入字典形式的資料
#writer
defwrite_csv_row
(filename, row)
:'''
追加寫入csv檔案
:param filename: 檔案路徑
:param row: 待寫入的行(列表)
:return: 無
'''with
open
(filename,
"a", newline=
'', encoding=
"utf-8"
)as out:
csv_write = csv.writer(out, dialect=
'excel'
) csv_write.writerow(row)
if __name__ ==
'__main__'
: file_path=
'./datas/test1.csv'
dicts=[,
,]labels=
['name'
,'age'
,'address'
] write_csv_dict(file_path,labels,dicts)
生成檔案內容:
讀取所有資料,每一行的值以列表形式返回
def
read_csv_all
(filename, read_head_row=
true):
''' 讀取csv檔案的所有行列資料
:param filename: 檔案路徑
:param read_head_row: 是否讀取第一行,預設是
:return: 所有行所有列資料(每一行為單獨的列表)
'''rows =
list()
with
open
(filename)
as f:
reader = csv.reader(f)
ifnot
(read_head_row)
:next
(reader)
for row in reader:
return rows
if __name__ ==
'__main__'
: file_path=
'./datas/test.csv'
result=read_csv_all(file_path,
false
)print
(result)
檔案內容:
控制台輸出
4、writer
追加寫入一行
def
write_csv_row
(file_path, row)
:'''
追加寫入csv檔案
:param file_path: 檔案路徑
:param row: 待寫入的行(列表)
:return: 無
'''with
open
(file_path,
"a", newline=
'', encoding=
"utf-8"
)as out:
csv_write = csv.writer(out, dialect=
'excel'
) csv_write.writerow(row)
if __name__ ==
'__main__'
: file_path=
'./datas/test1.csv'
row=
['小明',24
,'japan'
] write_csv_row(file_path,row)
Python csv模組的使用
csv comma separated values 即逗號分隔值 也稱字元分隔值,因為分隔符可以不是逗號 是一種常用的文字 格式,用以儲存 資料,包括數字或者字元。很多程式在處理資料時都會碰到csv這種格式的檔案,它的使用是比 較廣泛的 kaggle上一些題目提供的資料就是csv格式 csv雖然使...
Python csv模組的使用
csv comma separated values 即逗號分隔值 也稱字元分隔值,因為分隔符可以不是逗號 是一種常用的文字 格式,用以儲存 資料,包括數字或者字元。很多程式在處理資料時都會碰到csv這種格式的檔案,它的使用是比 較廣泛的 kaggle上一些題目提供的資料就是csv格式 csv雖然使...
python csv模組的使用
一 csv模組簡介 python3.7 csv模組實現了很多類,可以用來讀寫csv格式的 資料。在不知道excel檔案所用的csv格式的一些具體細節的情況下,該模組可以使得程式設計人員,將資料以excel所偏好的格式寫入檔案,或者讀取由excel生成的檔案。二 csv用來讀寫序列的reader和wr...