Python csv模組簡單使用

2021-10-22 10:20:39 字數 3777 閱讀 4146

前言針對有列標題的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...