import csv
讀取csv並用namedtuple對映列名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)
# 把第一行資料(表頭)讀出來,返回乙個列表
('單獨next出來的表頭'
, headers)
for i in reader:
# 遍歷這個迭代器
(i)# 每一行資料是乙個列表,表頭這一行已經被上面的next去掉了
# print(f'姓名:\t年齡:\t身高:')
name = i[0]
age = i[1]
height = i[-1
()
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)
# 把第一行資料(表頭)讀出來,返回乙個列表
('單獨next出來的表頭'
, headers)
row = namedtuple(
'row'
, headers)
# 定義乙個namedtuple物件,傳入讀取到的表頭headers(列表)
for r in reader:
# 遍歷這個迭代器
row = row(
*r)# 例項化並以解包的方式傳參
# 解包相當於把每個列表以關鍵字的方式對應傳入到物件裡了
(row)
(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'=>=>')
開啟檔案的時候,指定編碼為utf-8的時候用**開啟檔案就是亂碼的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,會多一行空行
不指定 預設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,翻譯為逗號分隔值或字元分隔值,其檔案以純文字形式儲存 資料。該檔案是乙個字串行,可以由任意數目的記錄組成,記錄間以某種換行符分隔。每條記錄由欄位組成,字段之間的分隔符是字串或其他字元,最常見的是逗號或製表符。不過所有記錄都...