最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python基礎(chǔ)教程之csv文件的寫入與讀取

 更新時(shí)間:2022年08月23日 11:08:14   作者:honker707  
CSV即逗號(hào)分隔值(也稱字符分隔值,因?yàn)榉指舴梢圆皇嵌禾?hào)),是一種常用的文本格式,用以存儲(chǔ)表格數(shù)據(jù),包括數(shù)字或者字符,下面這篇文章主要給大家介紹了關(guān)于python基礎(chǔ)教程之csv文件的寫入與讀取的相關(guān)資料,需要的朋友可以參考下

csv的簡(jiǎn)單介紹

CSV (Comma Separated Values),即逗號(hào)分隔值(也稱字符分隔值,因?yàn)榉指舴梢圆皇嵌禾?hào)),是一種常用的文本格式,用以存儲(chǔ)表格數(shù)據(jù),包括數(shù)字或者字符。很多程序在處理數(shù)據(jù)時(shí)都會(huì)碰到csv這種格式的文件。python自帶了csv模塊,專門用于處理csv文件的讀取

csv的寫入

1通過創(chuàng)建writer對(duì)象,主要用到2個(gè)方法。一個(gè)是writerow,寫入一行。另一個(gè)是writerows寫入多行

2使用DictWriter 可以使用字典的方式把數(shù)據(jù)寫入進(jìn)去

第一種寫入方法(通過創(chuàng)建writer對(duì)象)

先來說一下第一種寫入的方法:通過創(chuàng)建writer對(duì)象寫入(每次寫入一行)

步驟:1.創(chuàng)建數(shù)據(jù)和表頭2.創(chuàng)建writer對(duì)象3.寫表頭4.遍歷列表,將每一行數(shù)據(jù)寫入csv

代碼如下:

import csv

person = [('xxx', 18, 193), ('yyy', 18, 182), ('zzz', 19, 185)]
# 表頭
header = ['name', 'age', 'height']

with open('person.csv', 'w', encoding='utf-8') as file_obj:
    # 1:創(chuàng)建writer對(duì)象
    writer = csv.writer(file_obj)
    # 2:寫表頭
    writer.writerow(header)
    # 3:遍歷列表,將每一行的數(shù)據(jù)寫入csv
    for p in person:
        writer.writerow(p)

寫入完就會(huì)在當(dāng)前目錄下出現(xiàn)一個(gè)person.csv文件,鼠標(biāo)右鍵點(diǎn)擊show in Explorer打開person.csv查看

打開以后會(huì)發(fā)現(xiàn)寫入的數(shù)據(jù)中間會(huì)換行

居然:那么應(yīng)該怎么解決這個(gè)問題呢

hacker:很簡(jiǎn)單啊

只需要在寫入數(shù)據(jù)的時(shí)候加上一個(gè)參數(shù) newline=‘’為了防止換行寫入

改正后的代碼如下:

import csv

# 數(shù)據(jù)
person = [('xxx', 18, 193), ('yyy', 18, 182), ('zzz', 19, 185)]
# 表頭
header = ['name', 'age', 'height']

with open('person.csv', 'w', encoding='utf-8', newline='') as file_obj:
    # 創(chuàng)建對(duì)象
    writer = csv.writer(file_obj)
    # 寫表頭
    writer.writerow(header)
    # 遍歷,將每一行的數(shù)據(jù)寫入csv
    for p in person:
        writer.writerow(p)

通過創(chuàng)建writer對(duì)象(一次性寫入多行)

步驟:1.創(chuàng)建數(shù)據(jù)和表頭2.創(chuàng)建writer對(duì)象3.寫表頭4.在writerows里傳入你要處理的數(shù)據(jù)

import csv

# 數(shù)據(jù)
person = [('xxx', 18, 193), ('yyy', 18, 182), ('zzz', 19, 185)]
# 表頭
header = ['name', 'age', 'height']

with open('person.csv', 'w', encoding='utf-8', newline='') as file_obj:
    # 創(chuàng)建對(duì)象
    writer = csv.writer(file_obj)
    # 寫表頭
    writer.writerow(header)
    # 3.寫入數(shù)據(jù)(一次性寫入多行)
    writer.writerows(person)

寫入結(jié)果如下:

第二種寫入方法(使用DictWriter可以使用字典的方式將數(shù)據(jù)寫入)

注意事項(xiàng):使用字典的方式寫入要注意傳遞的數(shù)據(jù)格式必須是字典

如果不是字典的話會(huì)報(bào)錯(cuò)

AttributeError: ‘tuple’ object has no attribute ‘keys’

步驟1.創(chuàng)建數(shù)據(jù)和表頭( 數(shù)據(jù)必須是字典格式)2.創(chuàng)建DictWriter對(duì)象3.寫表頭4.寫入數(shù)據(jù)

import csv

# 數(shù)據(jù)
person = [
    {'name': 'xxx', 'age': 18, 'height': 193},
    {'name': 'yyy', 'age': 18, 'height': 182},
    {'name': 'zzz', 'age': 19, 'height': 185},
]
# 表頭
header = ['name', 'age', 'height']

with open('person.csv', 'w', encoding='utf-8', newline='') as file_obj:
    # 1.創(chuàng)建DicetWriter對(duì)象
    dictWriter = csv.DictWriter(file_obj, header)
    # 2.寫表頭
    dictWriter.writeheader()
    # 3.寫入數(shù)據(jù)(一次性寫入多行)
    dictWriter.writerows(person)

csv的讀取

通過reader()讀取

import csv

with open('person.csv', 'r', encoding='utf-8') as file_obj:
    # 1.創(chuàng)建reader對(duì)象
    reader = csv.reader(file_obj)
    print(reader)

如果直接打印會(huì)返回csv.reader對(duì)象,這時(shí)需要遍歷列表

<_csv.reader object at 0x000001FB8CE655F8>

改正代碼如下:

import csv

with open('person.csv', 'r', encoding='utf-8') as file_obj:
    # 1.創(chuàng)建reader對(duì)象
    reader = csv.reader(file_obj)
    # 2.遍歷進(jìn)行讀取數(shù)據(jù)
    for r in reader:
        print(r)

讀取結(jié)果如下:

['name', 'age', 'height']
['xxx', '18', '193']
['yyy', '18', '182']
['zzz', '19', '185']

如果想打印列表的某一個(gè)值,可以使用索引打印

print(r[0])

name
xxx
yyy
zzz

通過dictreader()讀取

import csv

with open('person.csv', 'r', encoding='utf-8') as file_obj:
    # 1.創(chuàng)建reader對(duì)象
    dictReader = csv.DictReader(file_obj)
    # 2.遍歷進(jìn)行讀取數(shù)據(jù)
    for r in dictReader:
        print(r)

返回結(jié)果如下:

OrderedDict([('name', 'xxx'), ('age', '18'), ('height', '193')])
OrderedDict([('name', 'yyy'), ('age', '18'), ('height', '182')])
OrderedDict([('name', 'zzz'), ('age', '19'), ('height', '185')])

這時(shí)我們?nèi)绻〉侥骋粋€(gè)值就需要指定鍵去尋找值

print(r['name'])

xxx
yyy
zzz

總結(jié)

到此這篇關(guān)于python基礎(chǔ)教程之csv文件的寫入與讀取的文章就介紹到這了,更多相關(guān)python csv文件寫入與讀取內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中將dataframe轉(zhuǎn)換為字典的實(shí)例

    Python中將dataframe轉(zhuǎn)換為字典的實(shí)例

    下面小編就為大家分享一篇Python中將dataframe轉(zhuǎn)換為字典的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Django框架cookie和session方法及參數(shù)設(shè)置

    Django框架cookie和session方法及參數(shù)設(shè)置

    這篇文章主要為大家介紹了Django框架cookie和session參數(shù)設(shè)置及介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • python RSA加密的示例

    python RSA加密的示例

    這篇文章主要介紹了python RSA加密的示例,幫助大家更好的理解和使用加密算法,感興趣的朋友可以了解下
    2020-12-12
  • WxPython建立批量錄入框窗口

    WxPython建立批量錄入框窗口

    這篇文章主要為大家詳細(xì)介紹了WxPython建立批量錄入框窗口,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • 關(guān)于Theano和Tensorflow多GPU使用問題

    關(guān)于Theano和Tensorflow多GPU使用問題

    這篇文章主要介紹了關(guān)于Theano和Tensorflow多GPU使用問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • 在python中l(wèi)ogger setlevel沒有生效的解決

    在python中l(wèi)ogger setlevel沒有生效的解決

    今天小編就為大家分享一篇在python中l(wèi)ogger setlevel沒有生效的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • matplotlib給子圖添加圖例的方法

    matplotlib給子圖添加圖例的方法

    今天小編就為大家分享一篇matplotlib給子圖添加圖例的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Python辦公自動(dòng)化PPT批量轉(zhuǎn)換操作

    Python辦公自動(dòng)化PPT批量轉(zhuǎn)換操作

    本文介紹如何使用 python 操作 PPT,用到的模塊就是 python-pptx,以下的示例基本滿足日常需求,如果要知道更多,可以訪問 python-pptx 的官方文檔
    2021-09-09
  • Python中利用函數(shù)裝飾器實(shí)現(xiàn)備忘功能

    Python中利用函數(shù)裝飾器實(shí)現(xiàn)備忘功能

    這篇文章主要介紹了Python中利用函數(shù)裝飾器實(shí)現(xiàn)備忘功能,同時(shí)還降到了利用裝飾器來檢查函數(shù)的遞歸、確保參數(shù)傳遞的正確,需要的朋友可以參考下
    2015-03-03
  • Flask框架URL管理操作示例【基于@app.route】

    Flask框架URL管理操作示例【基于@app.route】

    這篇文章主要介紹了Flask框架URL管理操作,結(jié)合實(shí)例形式分析了@app.route進(jìn)行URL控制的相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07

最新評(píng)論

洛川县| 江油市| 锡林浩特市| 伊金霍洛旗| 大埔县| 温州市| 上虞市| 望江县| 祁连县| 屏南县| 四会市| 酉阳| 吉水县| 黄龙县| 陈巴尔虎旗| 西乡县| 乌什县| 金平| 阜康市| 蓬莱市| 临桂县| 昌平区| 霍邱县| 金山区| 平阳县| 麦盖提县| 宝坻区| 大理市| 若羌县| 榆中县| 泸州市| 富宁县| 安岳县| 梨树县| 彭阳县| 三台县| 临猗县| 华坪县| 乌鲁木齐县| 大埔县| 开江县|