python讀取csv文件


逗號分隔值(Comma-Separated Values,CSV,有時也稱為字符分隔值,因為分隔字符也可以不是逗號),其文件以純文本形式存儲表格數據(數字和文本)。純文本意味着該文件是一個字符序列,無法存儲數值。

python讀取csv文件有兩種方式,一種讀取到是列表類型,一種讀取到時字典類型;

# 導包
import csv
# 定義文件路徑
csv_path = 'source_file/reg_info.csv'

1.第一種讀取方式

# 通過with語句讀取,以列表類型讀取
with open(csv_path,'r',encoding='utf8')as fp:
    # 使用列表推導式,將讀取到的數據裝進列表
    data_list = [i for i in csv.reader(fp)]  # csv.reader 讀取到的數據是list類型
    print(data_list)

# 讀取到的結果
[['mobilephone', 'pwd', 'regname', 'status', 'code', 'msg'], ['15664587568', 'xaiohua', 'xiaohua', '1', '10001', '注冊成功'], ['18956455875', 'xiaocao', 'xiaocao', '1', '10001', '注冊成功']]

2.第二種讀取方式

# 以字典類型讀取
# 在python3.6版本后,讀取到csv文件內容每一行的類型是OrderedDict;可以通過字典的形式取值;
# 在讀取過程中會將csv文件內容映射到OrderedDict中,其中OrderedDict中的鍵可以由fieldnames 定義;
# 如果fieldnames 為None,則OrderedDict的鍵為csv文件首行內容
with open(csv_path,'r',encoding='utf8')as fp:
    # 使用列表推導式,將讀取到的數據裝進列表
    data_list = [i for i in csv.DictReader(fp,fieldnames=None)]  # csv.DictReader 讀取到的數據是list類型
    print(data_list)


# 讀取到的結果為:
[OrderedDict([('mobilephone', '15664587568'), ('pwd', 'xaiohua'), ('regname', 'xiaohua'), ('status', '1'), ('code', '10001'), ('msg', '注冊成功')]), OrderedDict([('mobilephone', '18956455875'), ('pwd', 'xiaocao'), ('regname', 'xiaocao'), ('status', '1'), ('code', '10001'), ('msg', '注冊成功')])]

python寫入數據到csv文件,寫入文件分為單行數據寫入和多行數據寫入

1.單行數據寫入

# 單行數據寫入文件
data_list = ['15446875965','wwwwwww','vvvvvvvv',1,10001,'注冊成功']

with open(csv_path,'a',encoding='utf8')as fp:
    write = csv.writer(fp)
    write.writerow(data_list) # writerow 所接收的是一個列表

2.多行數據寫入

# 多行數據寫入
data_list = [
['15446875965','wwwwwww','vvvvvvvv',1,10001,'注冊成功'],
['15446875965','wwwwwww','vvvvvvvv',1,10001,'注冊成功'],
['15446875965','wwwwwww','vvvvvvvv',1,10001,'注冊成功'],
['15446875965','wwwwwww','vvvvvvvv',1,10001,'注冊成功'],
['15446875965','wwwwwww','vvvvvvvv',1,10001,'注冊成功'],
]
with open(csv_path,'a',encoding='utf8')as fp:
    write = csv.writer(fp)
    write.writerows(data_list) # writerow 所接收的是一個列表

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM