資料儲存 CSV檔案讀取和儲存

2021-10-24 16:09:29 字數 3444 閱讀 5618

import csv
def

read_csv_demo1()

:with

open

(r'c:\users\administrator\desktop\classroom1.csv'

)as f:

reader = csv.reader(f)

# 構造讀取器

# 把檔案指標傳給csv.reader()方法並賦值給reader,返回迭代器

# print(reader)

# next(reader) # 因為是迭代器所以這樣可以把第一行標題去掉

headers =

next

(reader)

# 把第一行資料(表頭)讀出來,返回乙個列表

print

('單獨next出來的表頭'

, headers)

for i in reader:

# 遍歷這個迭代器

print

(i)# 每一行資料是乙個列表,表頭這一行已經被上面的next去掉了

# print(f'姓名:\t年齡:\t身高:')

name = i[0]

age = i[1]

height = i[-1

]print

()

讀取csv並用namedtuple對映列名

from collections import namedtuple
def

csv_read_by_namedtuple()

:"""讀取csv並用namedtuple對映列名"""

with

open

(r'c:\users\administrator\desktop\classroom1.csv'

)as f:

reader = csv.reader(f)

# 構造讀取器,返回迭代器

# print(reader)

headers =

next

(reader)

# 把第一行資料(表頭)讀出來,返回乙個列表

print

('單獨next出來的表頭'

, headers)

row = namedtuple(

'row'

, headers)

# 定義乙個namedtuple物件,傳入讀取到的表頭headers(列表)

for r in reader:

# 遍歷這個迭代器

row = row(

*r)# 例項化並以解包的方式傳參

# 解包相當於把每個列表以關鍵字的方式對應傳入到物件裡了

print

(row)

print

(f'=>=>'

)

def

read_csv_demo2()

:with

open

(r'c:\users\administrator\desktop\classroom1.csv'

)as f:

# 使用dictreader建立的reader物件,不會包含第一行標題,標題將成為字典表的keys

# reader返回的是乙個迭代器,遍歷這個迭代器將返回乙個有序的字典表

reader = csv.dictreader(f)

# 構造讀取器,返回迭代器

# print(reader)

for i in reader:

# 遍歷這個迭代器

# print(i) # 每一行資料是乙個有序字典表

a =print

(a)# print(f'=>=>')

def

write_csv_demo1()

:# 表頭

# headers = ['username', 'age', 'height']

headers =

('username'

,'age'

,'height'

)# 內容

values =[(

'張三',18

,180),

('李四',19

,175),

('王五',25

,170),

('趙六',20

,190),

('馬七',21

,185),

['劉八',22

,185]]

with

open

('classroom1.csv'

,'w'

, newline='')

as f:

writer = csv.writer(f)

# 構造寫入器,傳入檔案指標

# 把檔案指標傳給.writer()方法並賦值給writer

writer.writerow(headers)

# .writerow()可以寫入一行資料(乙個序列)

writer.writerows(values)

# .writerows()可以寫入多行數資料(序列包含多個序列)

# newline=''是讓它寫入檔案的時候不要加乙個換行符,要不然預設是\n,會多一行空行

開啟檔案的時候,指定編碼為utf-8的時候用**開啟檔案就是亂碼的

不指定 預設ansi 系統編碼是gbk,在pycharm裡是亂碼的,用**開啟是正常的

def

write_csv_demo2()

:# 表頭

headers =

['username'

,'age'

,'height'

]# 內容

value =

values =[,

,,,,

dict

(username=

'馮八'

, age=

23, height=

180)

]with

open

('classroom2.csv'

,'w'

, newline='')

as f:

writer = csv.dictwriter(f, headers)

# 構造寫入器,傳入檔案指標和表頭資料

writer.writeheader(

)# 寫入表頭資料的時候,需要呼叫writeheader()方法

writer.writerow(value)

# .writerow()可以寫入一行資料(乙個字典表)

writer.writerows(values)

# .writerows()可以寫入多行數資料(序列包含多個字典表)

csv檔案儲存與讀取

csv是指逗號分隔值檔案格式,是以純文字形式來儲存 資料。1.儲存為csv格式 把要儲存的 中資料,按每一行存成一條記錄,然後將記錄新增到乙個list裡面,寫入檔案的時候將每個記錄轉換成一串逗號分隔的字串,再用遍歷的方法把所有記錄取出來 我是這樣寫的 也可以都存在乙個記錄裡,用換行符來換行,一次寫入...

CSV檔案讀取儲存技巧

import pandas as pd 假設已經有一csv檔案train.csv,對其處理後儲存為train2.csv 直接儲存如下 train.to csv train2.csv 對train2.csv進行讀取 pd.read csv train2.csv header none 這樣讀取後會發現...

CSV檔案儲存

csv檔案儲存 csv,全稱為 comma separated vaules,翻譯為逗號分隔值或字元分隔值,其檔案以純文字形式儲存 資料。該檔案是乙個字串行,可以由任意數目的記錄組成,記錄間以某種換行符分隔。每條記錄由欄位組成,字段之間的分隔符是字串或其他字元,最常見的是逗號或製表符。不過所有記錄都...