欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

由于 CSV 文件僅僅是簡(jiǎn)單的文本文件,因此更新 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 塊中打開(kāi)該文件,在文件使用完畢后可以自動(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ò)誤問(wèn)題:

>>> 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é)中,我們通過(guò)直接訪問(wèn)行號(hào)來(lái)修改數(shù)據(jù),但在通常情況下,我們可能需要首先搜索特定信息,確定相應(yīng)行后再進(jìn)行修改。

再次打開(kāi)文件并存儲(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 需要通過(guò)聲明字段名 (fieldnames=header) 來(lái)定義列上的字段,為了獲得這些字段名,我們可以先讀取其中一行數(shù)據(jù)字典的鍵并將它們存儲(chǔ)在 header 中。

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

在電子表格軟件中檢查結(jié)果。在下圖中可以看到,該文件使用 WPS 軟件打開(kāi)顯示,可以看到第一行的評(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)文章

  • anaconda中安裝的python環(huán)境中沒(méi)有pip3的問(wèn)題及解決

    anaconda中安裝的python環(huán)境中沒(méi)有pip3的問(wèn)題及解決

    這篇文章主要介紹了anaconda中安裝的python環(huán)境中沒(méi)有pip3的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 虛擬環(huán)境及venv和virtualenv的區(qū)別說(shuō)明

    虛擬環(huán)境及venv和virtualenv的區(qū)別說(shuō)明

    這篇文章主要介紹了虛擬環(huán)境及venv和virtualenv的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • Python 字典(Dictionary)操作詳解

    Python 字典(Dictionary)操作詳解

    這篇文章主要介紹了Python 字典(Dictionary)的詳細(xì)操作方法,需要的朋友可以參考下
    2014-03-03
  • python使用magic模塊進(jìn)行文件類型識(shí)別方法

    python使用magic模塊進(jìn)行文件類型識(shí)別方法

    今天小編就為大家分享一篇python使用magic模塊進(jìn)行文件類型識(shí)別方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • 在linux下實(shí)現(xiàn) python 監(jiān)控usb設(shè)備信號(hào)

    在linux下實(shí)現(xiàn) python 監(jiān)控usb設(shè)備信號(hào)

    今天小編就為大家分享一篇在linux下實(shí)現(xiàn) python 監(jiān)控usb設(shè)備信號(hào),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • 如何使用Python讀取xml文件

    如何使用Python讀取xml文件

    這篇文章主要介紹了如何使用Python讀取xml文件,關(guān)于python讀取xml文章很多,但大多文章都是貼一個(gè)xml文件,然后再貼個(gè)處理文件的代碼希望這篇文章可以更通俗易懂的教如何使用python 來(lái)讀取xml 文件
    2023-04-04
  • python之PyAutoGui教你做個(gè)自動(dòng)腳本計(jì)算器的方法

    python之PyAutoGui教你做個(gè)自動(dòng)腳本計(jì)算器的方法

    這篇文章主要介紹了python之PyAutoGui教你做個(gè)自動(dòng)腳本計(jì)算器的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Python動(dòng)態(tài)規(guī)劃實(shí)現(xiàn)虛擬機(jī)部署的算法思想

    Python動(dòng)態(tài)規(guī)劃實(shí)現(xiàn)虛擬機(jī)部署的算法思想

    這篇文章主要介紹了Python動(dòng)態(tài)規(guī)劃實(shí)現(xiàn)虛擬機(jī)部署的算法思想,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-07-07
  • Python中異常重試的解決方案詳解

    Python中異常重試的解決方案詳解

    這篇文章主要給大家介紹了在Python中異常重試的解決方案,文中介紹的非常詳細(xì),相信對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編一起來(lái)看看吧。
    2017-05-05
  • 解決python3 urllib 鏈接中有中文的問(wèn)題

    解決python3 urllib 鏈接中有中文的問(wèn)題

    今天小編就為大家分享一篇解決python3 urllib 鏈接中有中文的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07

最新評(píng)論