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

Python 修改CSV文件實(shí)例詳解

 更新時(shí)間:2022年08月26日 10:59:42   作者:盼小輝丶  
這篇文章主要為大家介紹了Python 修改CSV文件實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

前言

由于 CSV 文件僅僅是簡單的文本文件,因此更新 CSV 文件中內(nèi)容的最佳方式是首先讀取文件中的數(shù)據(jù),并將它們處理為 Python 內(nèi)部對(duì)象,進(jìn)行更改,然后以相同的格式覆蓋原始數(shù)據(jù)。

Python 修改CSV文件

在本節(jié)中,我們將學(xué)習(xí)如何使用 Python 修改 CSV 文件中的數(shù)據(jù)。

假設(shè)在CSV文件中有以下數(shù)據(jù),其中用戶 '1' 對(duì)電影 'Star Wars' 的評(píng)分有誤,其實(shí)際評(píng)分為 7.9,因此需要修改此文件。

User nameMovie namerating
1Star Wars7.8
2Back to Future8
2Batman7.7
3Spy 0078.3

首先,導(dǎo)入 csv 模塊并定義文件名:

>>> import csv
>>> file_name = 'movies_rating.csv'

導(dǎo)入 csv 模塊后,我們從指定 csv 文件中提取所有數(shù)據(jù)。為了便于操作,我們?cè)?with 塊中打開該文件,在文件使用完畢后可以自動(dòng)關(guān)閉文件句柄。

使用 DictReader 可以非常方便地將數(shù)據(jù)轉(zhuǎn)換為字典列表,其中標(biāo)頭作為鍵,單元格中的內(nèi)容作為值,例如第一行的數(shù)據(jù)被轉(zhuǎn)換為 {'User name': 1, 'Movie name': 'Star Wars', 'rating':7.8}

然后,我們可以操作和修改格式化后的數(shù)據(jù)。

使用 DictReader 讀取文件的內(nèi)容并將此內(nèi)容轉(zhuǎn)換為數(shù)據(jù)行的列表:

>>> with open(file_name, newline='') as f:
...     data = [row for row in csv.DictReader(f)]
...

檢查獲得的數(shù)據(jù),將文件中第一個(gè)評(píng)分記錄中的評(píng)分?jǐn)?shù)據(jù)從 7.8 修改為 7.9,解決數(shù)據(jù)錯(cuò)誤問題:

>>> data
[OrderedDict([('User name', '001'), ('Movie name', 'Star Wars'), ('rating', '7.8')]), OrderedDict([('User name', '002'), ('Movie name', 'Back to Future'), ('rating', '8.0')]), OrderedDict([('User name', '002'), ('Movie name', 'Batman'), ('rating', '7.7')]), OrderedDict([('User name', '003'), ('Movie name', 'Spy 007'), ('rating', '8.3')])]
>>> data[0]['rating']
'7.8'
>>> data[0]['rating'] = 7.9

在本節(jié)中,我們通過直接訪問行號(hào)來修改數(shù)據(jù),但在通常情況下,我們可能需要首先搜索特定信息,確定相應(yīng)行后再進(jìn)行修改。

再次打開文件并存儲(chǔ)修改后的數(shù)據(jù)記錄:

>>> header = data[0].keys()
>>> with open(file_name, 'w', newline='') as f:
...     writer = csv.DictWriter(f, fieldnames=header)
...     writer.writeheader()
...     writer.writerows(data)
...

數(shù)據(jù)修改后,我們直接覆蓋原文件并使用 DictWriter 存儲(chǔ)數(shù)據(jù)。DictWriter 需要通過聲明字段名 (fieldnames=header) 來定義列上的字段,為了獲得這些字段名,我們可以先讀取其中一行數(shù)據(jù)字典的鍵并將它們存儲(chǔ)在 header 中。

原文件以 w 模式再次打開以覆蓋它。DictWriter 首先使用 writeheader 存儲(chǔ)標(biāo)頭,然后通過調(diào)用 writerows() 一次存儲(chǔ)所有行。我們也可以通過調(diào)用 writerow() 方法每次寫入一行數(shù)據(jù)。

在電子表格軟件中檢查結(jié)果。在下圖中可以看到,該文件使用 WPS 軟件打開顯示,可以看到第一行的評(píng)分?jǐn)?shù)據(jù)已經(jīng)被修改:

以上就是Python 修改CSV文件實(shí)例詳解的詳細(xì)內(nèi)容,更多關(guān)于Python 修改CSV文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python pandas入門系列之眾數(shù)和分位數(shù)

    Python pandas入門系列之眾數(shù)和分位數(shù)

    分位數(shù)(Quantile),也稱分位點(diǎn),是指將一個(gè)隨機(jī)變量的概率分布范圍分為幾個(gè)等份的數(shù)值點(diǎn),分析其數(shù)據(jù)變量的趨勢(shì),而眾數(shù)(Mode)是代表數(shù)據(jù)的一般水平,這篇文章主要給大家介紹了Python pandas系列之眾數(shù)和分位數(shù)的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • Python基于正則表達(dá)式實(shí)現(xiàn)計(jì)算器功能

    Python基于正則表達(dá)式實(shí)現(xiàn)計(jì)算器功能

    這篇文章主要介紹了Python基于正則表達(dá)式實(shí)現(xiàn)計(jì)算器功能,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 一文掌握Python正則表達(dá)式

    一文掌握Python正則表達(dá)式

    這篇文章主要介紹了Python正則表達(dá)式的相關(guān)知識(shí),主要包括re模塊的使用及正則表達(dá)式基礎(chǔ)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • python單例設(shè)計(jì)模式實(shí)現(xiàn)解析

    python單例設(shè)計(jì)模式實(shí)現(xiàn)解析

    這篇文章主要介紹了python單例設(shè)計(jì)模式實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Python使用shutil模塊實(shí)現(xiàn)文件拷貝

    Python使用shutil模塊實(shí)現(xiàn)文件拷貝

    這篇文章主要介紹了Python使用shutil模塊實(shí)現(xiàn)文件拷貝,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • numpy 計(jì)算兩個(gè)數(shù)組重復(fù)程度的方法

    numpy 計(jì)算兩個(gè)數(shù)組重復(fù)程度的方法

    今天小編就為大家分享一篇numpy 計(jì)算兩個(gè)數(shù)組重復(fù)程度的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • python使用IP歸屬地查詢API追蹤網(wǎng)絡(luò)活動(dòng)

    python使用IP歸屬地查詢API追蹤網(wǎng)絡(luò)活動(dòng)

    這篇文章主要為大家介紹了python使用IP歸屬地查詢API追蹤網(wǎng)絡(luò)活動(dòng)實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Python3之不使用第三方變量,實(shí)現(xiàn)交換兩個(gè)變量的值

    Python3之不使用第三方變量,實(shí)現(xiàn)交換兩個(gè)變量的值

    今天小編就為大家分享一篇Python3之不使用第三方變量,實(shí)現(xiàn)交換兩個(gè)變量的值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Swin?Transformer圖像處理深度學(xué)習(xí)模型

    Swin?Transformer圖像處理深度學(xué)習(xí)模型

    這篇文章主要為大家介紹了Swin?Transformer圖像處理深度學(xué)習(xí)模型詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • Python中異常捕獲與處理的方法總結(jié)

    Python中異常捕獲與處理的方法總結(jié)

    Python異常是在程序執(zhí)行時(shí)發(fā)生的錯(cuò)誤,可能會(huì)導(dǎo)致程序終止運(yùn)行。這篇文章主要為大家總結(jié)了Python中異常捕獲與處理的方法,需要的可以參考一下
    2023-04-04

最新評(píng)論

柳河县| 尚义县| 沙湾县| 阿勒泰市| 曲麻莱县| 酉阳| 南郑县| 弥渡县| 兴安盟| 吴川市| 吴江市| 德兴市| 凤凰县| 石渠县| 柳州市| 天祝| 和田市| 疏勒县| 酉阳| 黄平县| 栾城县| 岚皋县| 岑溪市| 孟津县| 黄梅县| 高州市| 桦甸市| 迭部县| 沙田区| 宜兰县| 霍邱县| 三原县| 绥棱县| 枣阳市| 如东县| 钟祥市| 皋兰县| 行唐县| 乌拉特中旗| 望奎县| 泰来县|