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

Python讀寫TOML文件的示例代碼

 更新時間:2023年08月28日 16:24:40   作者:鯨落_  
TOML?文件表示(Tom's?Obvious,最小語言),它的語法主要由鍵=值對組成,本文主要為大家詳細介紹了如何使用Python讀寫TOML文件,感興趣的小伙伴可以了解下

TOML 文件表示(Tom's Obvious,最小語言)。配置文件可以存儲在TOML 文件中,其擴展名為 .toml。由于其語義簡單,力求“最小化”,因此它應(yīng)該易于閱讀和編寫。它還可以清楚地映射到字典。TOML 的語法主要由鍵=值對組成。這使得 TOML 旨在易于人們閱讀和創(chuàng)建,同時又易于計算機解析。此外,TOML 還可用作其他配置文件格式(例如JSON 和 YAML)的替代方案。

所需模塊:

通過在終端或命令提示符中執(zhí)行以下命令,我們可以使用 PIP 來安裝軟件包。

pip install toml

TOML 文件格式

鍵/值對、節(jié)/表和注釋構(gòu)成了 TOML 文件的大部分,這些文件也需要是有效的 UTF-8 編碼的 Unicode 文檔。TOML 支持以下數(shù)據(jù)類型:字符串、整數(shù)、浮點型、布爾型、日期時間、數(shù)組和表(哈希表/字典)。TOML 是區(qū)分大小寫的語言。以下是 TOML 文件語法的簡要概述:

  • 注釋以 # 字符開始,一直到行尾。
  • 鍵值對表示為key = value并用換行符分隔。
  • 可以使用方括號嵌套鍵以創(chuàng)建節(jié)的層次結(jié)構(gòu),例如 [section1.subsection1]
  • 值可以是字符串(在引號中)、整數(shù)、浮點數(shù)、布爾值、日期/時間(采用 ISO 8601 格式)、數(shù)組(在方括號中)或表格(在花括號中)。
  • 數(shù)組可以包含任何類型的值,包括其他數(shù)組或表。
  • 表表示一組鍵值對,可用于將相關(guān)的配置設(shè)置分組在一起。表可以有自己的部分,并且可以嵌套在其他表中。
  • 空白(空格、制表符和換行符)在 TOML 文件中很重要,應(yīng)一致使用以確保正確解析文件。

TOML 模塊的用例

  • 配置文件:TOML 通常用作 Python 應(yīng)用程序的配置文件格式。toml模塊可用于解析這些配置文件并將配置數(shù)據(jù)加載到應(yīng)用程序中。
  • 數(shù)據(jù)序列化:TOML可用于序列化和反序列化Python數(shù)據(jù)結(jié)構(gòu)。toml模塊提供了將 Python 字典與 TOML 數(shù)據(jù)相互轉(zhuǎn)換的方法。
  • 互操作性:TOML是一種跨語言格式,這意味著TOML數(shù)據(jù)可以在不同的編程語言之間輕松共享。toml模塊可用于將 Python 數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為 TOML,然后可以輕松地與其他語言共享。
  • 測試:  TOML可以用作測試夾具格式,允許開發(fā)人員以TOML格式編寫測試用例,并使用toml模塊在Python中加載和運行測試用例。

目錄結(jié)構(gòu):

創(chuàng)建 TOML 文件

創(chuàng)建一個 TOML 文件,復(fù)制粘貼以下文本,然后使用擴展名 .toml 保存

[server]
host = "localhost"
port = 8080
ssl = false
[database]
url = "mongodb://localhost:27017"
name = "mydb"
username = "myuser"
password = "mypassword"
level = "info"

使用Python讀取TOML文件

toml.load() 方法讀取 TOML 文件的內(nèi)容并將解析后的數(shù)據(jù)作為 Python 字典返回。湯姆 . dumps() 方法將數(shù)據(jù)序列化回 TOML 格式并將其作為字符串返回。最后,使用print() 方法將序列化的 TOML 數(shù)據(jù)打印到控制臺。此代碼可用于讀取和修改存儲在 TOML 文件中的配置數(shù)據(jù),然后使用 toml.dump  () 方法將修改后的數(shù)據(jù)保存回文件中。

app.py

import toml
with open('config.toml', 'r') as f:
	config = toml.load(f)
# 從配置訪問值
print(config['server']['host'])
print(config['server']['port'])
print(config['database']['username'])

輸出:

使用 Python 寫入 TOML 文件

然后使用toml.load() 方法將文件的內(nèi)容解析到名為 config的字典中。然后,代碼通過在 'database' 鍵下添加新的鍵值對來修改 config 字典中的特定值。新的鍵為 'level2' ,值為'新添加的信息' 。最后,使用toml.dump()方法將修改后的 config字典寫回到config.toml文件中,該方法將字典轉(zhuǎn)換為TOML格式并寫入到文件中。文件以寫模式打開,with語句確保寫入后正確關(guān)閉。

輸出:

再次檢查 config.toml 文件

[server]
host = "localhost"
port = 8080
ssl = false
[database]
url = "mongodb://localhost:27017"
name = "mydb"
username = "myuser"
password = "mypassword"
level = "info"
level2 = "new added information"

使用Python修改TOML文件

代碼首先導(dǎo)入 toml 庫,該庫提供了加載和轉(zhuǎn)儲 TOML 文件的功能,使用 open () 函數(shù)打開名為 config.toml 的 TOML 配置文件。該文件以讀取模式('r')打開,并使用 toml.load() 函數(shù)將其內(nèi)容加載到 Python 字典中。生成的字典稱為 config,包含 TOML 文件中的配置數(shù)據(jù)。然后,代碼通過將數(shù)據(jù)庫部分中的級別值更改為“信息”來修改配置字典中的值。

最后將修改后的config字典寫回到 config.toml 中再次使用 open() 函數(shù)打開文件,這次處于寫入模式('w')。使用 toml.dump() 函數(shù)將修改后的字典寫入文件,該函數(shù)將字典轉(zhuǎn)換為 TOML 格式的字符串并將其寫入文件。

app.py

import toml
# 加載TOML文件
with open('config.toml', 'r') as f:
	config = toml.load(f)
# 修改配置中的值
config['database']['level'] = 'information'
# 將修改后的配置寫回文件
with open('config.toml', 'w') as f:
	toml.dump(config, f)

輸出:

再次檢查 config.toml 文件以查看更改:

[server]
host = "localhost"
port = 8080
ssl = false
[database]
url = "mongodb://localhost:27017"
name = "mydb"
username = "myuser"
password = "mypassword"
level = "information" 

JSON 和 TOML 文件之間的區(qū)別

Toml 和 JSON 都可以有效地表示結(jié)構(gòu)化數(shù)據(jù),但是它們在數(shù)據(jù)類型、靈活性和語法方面有所不同。選擇的格式取決于您項目的具體需求以及您正在使用的工具和庫。

  • 語法:JSON 使用基于 JavaScript 對象表示法的語法,而 TOML 使用更易于理解的語法,更接近配置文件。
  • 注釋:TOML 支持注釋,而 JSON 不支持。
  • 數(shù)據(jù) 類型:JSON 支持一組有限的數(shù)據(jù)類型,包括字符串、數(shù)字、布爾值、數(shù)組和對象。另一方面,TOML 支持更廣泛的數(shù)據(jù)類型,包括日期、時間和表格。
  • 使用 案例:JSON 廣泛用于 Web 應(yīng)用程序、API 和數(shù)據(jù)庫之間的數(shù)據(jù)交換。TOML 通常用于配置文件,例如流行的靜態(tài)站點生成器 Hugo。

例子:

JSONTOML
{  “employee”: {    “name”: “John Doe”,    “age”: 35,    “gender”: “male”,    “address”: “123 Main St, Anytown USA”,    “hobbies”: [“reading”, “cooking”, “hiking”],    “skills”: {      “programming_languages”: [“Python”, “Java”, “C++”],      “databases”: [“MySQL”, “PostgreSQL”, “MongoDB”]    }  } }[employee] name = “John Doe” age = 35 gender = “male” address = “123 Main St, Anytown USA” hobbies = [“reading”, “cooking”, “hiking”][employee.skills] programming_languages = [“Python”, “Java”, “C++”] databases = [“MySQL”, “PostgreSQL”, “MongoDB”]

到此這篇關(guān)于Python讀寫TOML文件的示例代碼的文章就介紹到這了,更多相關(guān)Python讀寫TOML文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python3實現(xiàn)無權(quán)最短路徑的方法

    python3實現(xiàn)無權(quán)最短路徑的方法

    這篇文章主要介紹了python3實現(xiàn)無權(quán)最短路徑的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • python3 下載網(wǎng)絡(luò)圖片代碼實例

    python3 下載網(wǎng)絡(luò)圖片代碼實例

    這篇文章主要介紹了python3 下載網(wǎng)絡(luò)圖片代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • pandas的分箱操作實現(xiàn)

    pandas的分箱操作實現(xiàn)

    本文主要介紹了在pandas中使用pd.cut()和pd.qcut()方法進行數(shù)據(jù)分箱的操作,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • Python基礎(chǔ)詳解之列表復(fù)制

    Python基礎(chǔ)詳解之列表復(fù)制

    這篇文章主要介紹了Python基礎(chǔ)詳解之列表復(fù)制,文中有非常詳細的代碼示例,對正在學(xué)習(xí)python基礎(chǔ)的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-04-04
  • Python中SQLite數(shù)據(jù)庫的使用

    Python中SQLite數(shù)據(jù)庫的使用

    SQLite是一種輕型關(guān)系型數(shù)據(jù)庫,常用于嵌入式設(shè)備和移動應(yīng)用中。Python中內(nèi)置了SQLite模塊,可用于連接和操作SQLite數(shù)據(jù)庫。通過Python SQLite模塊,可以方便地創(chuàng)建、查詢和修改數(shù)據(jù)庫中的數(shù)據(jù),支持事務(wù)處理和數(shù)據(jù)庫操作的原子性保證
    2023-04-04
  • Python正則表達式經(jīng)典入門教程

    Python正則表達式經(jīng)典入門教程

    這篇文章主要介紹了Python正則表達式,結(jié)合具體實例形式歸納總結(jié)了Python正則表達式中常用的各種函數(shù)與相關(guān)使用技巧,需要的朋友可以參考下
    2017-05-05
  • python利用socket實現(xiàn)客戶端和服務(wù)端之間進行通信

    python利用socket實現(xiàn)客戶端和服務(wù)端之間進行通信

    這篇文章主要介紹了python實現(xiàn)客戶端和服務(wù)端之間進行通信,文章通過python利用socket展開詳情介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05
  • pytorch實現(xiàn)特殊的Module--Sqeuential三種寫法

    pytorch實現(xiàn)特殊的Module--Sqeuential三種寫法

    今天小編就為大家分享一篇pytorch實現(xiàn)特殊的Module--Sqeuential三種寫法。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python 定義類時,實現(xiàn)內(nèi)部方法的互相調(diào)用

    python 定義類時,實現(xiàn)內(nèi)部方法的互相調(diào)用

    今天小編就為大家分享一篇python 定義類時,實現(xiàn)內(nèi)部方法的互相調(diào)用,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python函數(shù)參數(shù)的4種方式

    Python函數(shù)參數(shù)的4種方式

    本文主要介紹了Python函數(shù)參數(shù)的4種方式,主要包括必選參數(shù),默認參數(shù),可選參數(shù),關(guān)鍵字參數(shù),具有一定的參考價值,感興趣的可以了解一下
    2024-01-01

最新評論