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

一文帶你梳理Python中七種配置文件的常見用法

 更新時間:2025年09月01日 08:18:40   作者:跟橙姐學代碼  
在寫 Python 項目的時候,最讓人頭大的環(huán)節(jié)之一,就是配置文件,本文將帶大家一起深入了解下Python中七種配置文件的常見用法,感興趣的可以了解下

在寫 Python 項目的時候,最讓人頭大的環(huán)節(jié)之一,就是配置文件。

你肯定遇到過:

  • 模型訓練路徑要配置;
  • API Key 要配置;
  • 數(shù)據(jù)庫連接參數(shù)要配置;
  • 生產環(huán)境、測試環(huán)境的參數(shù)還得區(qū)分……

結果就是:項目寫著寫著,光是管理配置文件就快把人逼瘋。

更扎心的是,不同的項目,配置文件格式還五花八門——有人用 .ini,有人用 .json,有人推崇 .yaml,還有 .toml、.env、.xml,甚至直接用 .py 文件來寫。

那么問題來了:到底該用哪種?它們有什么區(qū)別?在 Python 里怎么讀寫?

別急,這篇文章我會把 7 種常見的配置方式一次性說清楚,代碼實戰(zhàn)全給你備好,照著用就行。

一、為什么配置文件這么重要

在項目開發(fā)里,配置文件就像“遙控器”。 你不可能把所有參數(shù)寫死在代碼里吧? 那樣一旦換服務器、換數(shù)據(jù)庫、換模型路徑,改動起來簡直要命。

有了配置文件,就像把遙控器交給你:

  • 想改參數(shù),直接改配置,不用動核心代碼;
  • 想區(qū)分測試環(huán)境和生產環(huán)境?復制兩份配置文件就行;
  • 想分享項目?把敏感信息放進 .env,別人拿到項目后只要改一改配置,就能跑起來。

所以,配置文件的格式選擇,其實決定了你的項目可維護性和擴展性

二、常見配置格式橫向對比

咱們先來個總覽,心里有數(shù):

格式可讀性復雜度安全性類型支持適用場景
INI基礎類型簡單分組配置
JSON豐富跨語言、數(shù)據(jù)交換
YAML豐富復雜配置,帶注釋
XML豐富企業(yè)級規(guī)范
.env字符串環(huán)境變量、敏感信息
TOML豐富Python 項目常用
Python 文件完全支持框架級、動態(tài)配置

一張表看下來,基本思路就出來了:

  • 簡單粗暴用 INI;
  • 要跨語言、交換數(shù)據(jù)用 JSON;
  • 想要人類友好 + 注釋能力強,就上 YAML
  • 如果你是企業(yè)項目、偏 Java 系,可能用 XML;
  • 需要管理敏感信息, .env 幾乎是標配;
  • TOML 是 Python 項目的新寵,兼顧簡潔和結構;
  • 框架配置動不動就是 .py 文件(比如 Django),那是特殊情況。

下面我們就一一拆解,看它們在 Python 里怎么用。

三、七種方式逐個過

1. INI 文件 —— 老牌選手

INI 文件最大的優(yōu)點就是:簡單、直觀、Python 原生支持。 標準庫里有 configparser,拿來就用。

import configparser

def handle_ini_file():
    # 寫INI文件
    config = configparser.ConfigParser()
    config['DEFAULT'] = {
        'ServerAliveInterval': '45',
        'Compression': 'yes',
        'CompressionLevel': '9'
    }
    config['bitbucket.org'] = {}
    config['bitbucket.org']['User'] = 'hg'
    config['topsecret.server.com'] = {}
    topsecret = config['topsecret.server.com']
    topsecret['Port'] = '50022'
    topsecret['ForwardX11'] = 'no'

    # 寫入文件
    with open('myconfig.ini', 'w') as f:
        config.write(f)

    # 讀取INI文件
    config_read = configparser.ConfigParser()
    config_read.read('myconfig.ini')

    print("INI文件內容:")
    print(f"ServerAliveInterval: {config_read['DEFAULT']['ServerAliveInterval']}")
    print(f"bitbucket User: {config_read.get('bitbucket.org', 'User')}")
    print(f"Port: {config_read.getint('topsecret.server.com', 'Port')}")
    print(f"ForwardX11: {config_read.getboolean('topsecret.server.com', 'ForwardX11')}")

適合場景:配置比較簡單,不需要嵌套。

2. JSON 文件 —— 跨語言通吃

幾乎所有語言都支持 JSON,這就是它的殺手锏。 Python 里用 json 模塊,一行搞定。

import json

def handle_json_file():
    data = {
        "name": "John",
        "age": 30,
        "city": "New York",
        "is_student": False,
        "hobbies": ["reading", "gaming", "hiking"],
        "address": {
            "street": "123 Main St",
            "zipcode": "10001"
        }
    }

    # 寫JSON
    with open('myconfig.json', 'w') as f:
        json.dump(data, f, indent=4)

    # 讀JSON
    with open('myconfig.json', 'r') as f:
        data_read = json.load(f)

    print("JSON文件內容:")
    print(f"Name: {data_read['name']}")
    print(f"Age: {data_read['age']}")
    print(f"Hobbies: {', '.join(data_read['hobbies'])}")
    print(f"Zipcode: {data_read['address']['zipcode']}")

適合場景:需要和別的語言/程序交互的數(shù)據(jù)交換。

3. YAML 文件 —— 人類最友好的配置

YAML 近幾年在 Python 圈特別火,優(yōu)點就是:簡潔,還能寫注釋! 不過要裝 pyyaml,標準庫沒帶。

import yaml

def handle_yaml_file():
    data = {
        "name": "Alice",
        "age": 25,
        "city": "London",
        "is_student": True,
        "hobbies": ["painting", "dancing"],
        "address": {
            "street": "456 Oak Ave",
            "zipcode": "SW1A 1AA"
        }
    }

    # 寫YAML
    with open('myconfig.yaml', 'w') as f:
        yaml.dump(data, f, sort_keys=False)

    # 讀YAML
    with open('myconfig.yaml', 'r') as f:
        data_read = yaml.safe_load(f)

    print("YAML文件內容:")
    print(f"Name: {data_read['name']}")
    print(f"Age: {data_read['age']}")
    print(f"Hobbies: {', '.join(data_read['hobbies'])}")
    print(f"Zipcode: {data_read['address']['zipcode']}")

適合場景:復雜項目,需要手動編輯、加注釋。

4. TOML 文件 —— Python 官方推薦

TOML 是近年來火起來的,它的設計初衷就是做配置。 Python 官方文檔里推薦用它。

import toml

# 寫入TOML
data = {
    "title": "TOML config",
    "owner": {
        "name": "Tom Preston-Werner",
        "dob": "1979-05-27T07:32:00-08:00"
    },
    "database": {
        "server": "192.168.1.1",
        "ports": [8001, 8001, 8002]
    }
}

with open("config.toml", "w") as f:
    toml.dump(data, f)

# 讀取TOML
with open("config.toml", "r") as f:
    config = toml.load(f)

print('toml配置信息:', config["database"]["server"])

適合場景:現(xiàn)代 Python 項目,結構化又簡潔。

5. XML 文件 —— 老派企業(yè)最愛

XML 在 Java 生態(tài)里非常常見,Python 里用得少,主要是寫法太啰嗦。

import xml.etree.ElementTree as ET

# 寫XML
root = ET.Element("config")
server = ET.SubElement(root, "server")
ET.SubElement(server, "host").text = "localhost"
ET.SubElement(server, "port").text = "8080"

tree = ET.ElementTree(root)
tree.write("config.xml")

# 讀XML
tree = ET.parse("config.xml")
root = tree.getroot()
host = root.find("server/host").text
port = root.find("server/port").text
print(host)
print('端口', port)

適合場景:企業(yè)級規(guī)范,或者要和 Java 系統(tǒng)打交道時。

6. 環(huán)境變量(.env 文件)—— 敏感信息守護者

密碼、API Key、數(shù)據(jù)庫 URL 這些東西,最適合放 .env。 配合 python-dotenv,特別方便。

from dotenv import load_dotenv
import os

# 加載.env
load_dotenv()

# 讀取環(huán)境變量
api_key = os.getenv("API_KEY")
database_url = os.getenv("DATABASE_URL")

print('apikey:', api_key)
print('Url:', database_url)

適合場景:存儲敏感配置,環(huán)境變量管理。

7. Python 文件 —— 直接上本尊

有些框架直接用 .py 做配置(Django 就是)。 靈活性最高,但也意味著安全性和維護性要小心。

# settings.py
DEBUG = True
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'mydatabase'
    }
}

適合場景:框架內部、動態(tài)計算配置。

四、怎么選

一句話總結:

  • 快速小項目:INI
  • 要交換數(shù)據(jù):JSON
  • 人類友好:YAML
  • Python 新項目:TOML
  • 敏感信息:.env
  • 企業(yè)/老系統(tǒng):XML
  • 框架內置:.py

大多數(shù)情況下,YAML + TOML + .env 足夠覆蓋絕大多數(shù) Python 項目需求。

五、最后的話

別小看配置文件,它決定了你的項目是不是“優(yōu)雅”。 如果配置亂七八糟,項目就會越來越臃腫,哪怕代碼寫得再漂亮,也會被坑到。

所以,學會正確地管理配置,其實就是在給未來的自己減負。

到此這篇關于一文帶你梳理Python中七種配置文件的常見用法的文章就介紹到這了,更多相關Python配置文件用法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 解決Django中修改js css文件但瀏覽器無法及時與之改變的問題

    解決Django中修改js css文件但瀏覽器無法及時與之改變的問題

    今天小編就為大家分享一篇解決Django中修改js css文件但瀏覽器無法及時與之改變的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python竟能畫這么漂亮的花,帥呆了(代碼分享)

    Python竟能畫這么漂亮的花,帥呆了(代碼分享)

    這篇文章主要介紹了用Python作圖的一個簡單實例,通過turtle模塊實現(xiàn)作圖,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • python opencv 找出圖像中的最大輪廓并填充(生成mask)

    python opencv 找出圖像中的最大輪廓并填充(生成mask)

    這篇文章主要介紹了python opencv 找出圖像中的最大輪廓并填充(生成mask),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • Python基于Tkinter實現(xiàn)的記事本實例

    Python基于Tkinter實現(xiàn)的記事本實例

    這篇文章主要介紹了Python基于Tkinter實現(xiàn)的記事本,實例分析了Tkinter實現(xiàn)記事本程序的相關技巧,需要的朋友可以參考下
    2015-06-06
  • python?web?開發(fā)之Flask中間件與請求處理鉤子的最佳實踐

    python?web?開發(fā)之Flask中間件與請求處理鉤子的最佳實踐

    Flask作為輕量級Web框架,提供了靈活的請求處理機制,中間件和請求鉤子允許開發(fā)者在請求處理的不同階段插入自定義邏輯,實現(xiàn)諸如身份驗證、日志記錄、數(shù)據(jù)預處理等功能,本文將詳細介紹Flask的請求處理鉤子、g對象以及中間件模式的使用方法和最佳實踐,感興趣的朋友一起看看吧
    2025-05-05
  • python定時關機小腳本

    python定時關機小腳本

    這篇文章主要為大家詳細介紹了python定時關機小腳本,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Python讀寫txt文件的多種方法

    Python讀寫txt文件的多種方法

    文本文件(.txt)是最基礎、最通用的數(shù)據(jù)存儲格式之一,廣泛應用于日志記錄、配置文件、數(shù)據(jù)交換等場景,本文將詳細介紹Python中讀寫txt文件的各種方法,包括基礎操作和高級技巧,需要的朋友可以參考下
    2026-05-05
  • Python元組的嵌套使用與多層元組的訪問與遍歷指南

    Python元組的嵌套使用與多層元組的訪問與遍歷指南

    在Python的世界里,元組(Tuple)是一種簡單卻強大的數(shù)據(jù)結構,它以其不可變性和輕量級特性,成為許多場景下的首選如何優(yōu)雅地處理嵌套元組?如何高效訪問和遍歷多層嵌套的元組?這些問題困擾著許多初學者,本文將深入探討元組的嵌套使用技巧,需要的朋友可以參考下
    2026-05-05
  • python魔法方法-屬性訪問控制詳解

    python魔法方法-屬性訪問控制詳解

    下面小編就為大家?guī)硪黄猵ython魔法方法-屬性訪問控制詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • 簡單介紹使用Python解析并修改XML文檔的方法

    簡單介紹使用Python解析并修改XML文檔的方法

    這篇文章主要介紹了使用Python解析并修改XML文檔的方法,是Python入門學習中的基礎知識,需要的朋友可以參考下
    2015-10-10

最新評論

邵阳县| 墨脱县| 蛟河市| 任丘市| 体育| 闸北区| 忻城县| 黄石市| 怀柔区| 武清区| 咸宁市| 光山县| 庆元县| 华亭县| 金沙县| 含山县| 葵青区| 周宁县| 保靖县| 洛扎县| 缙云县| 榆中县| 绥芬河市| 防城港市| 章丘市| 荥经县| 高清| 泗洪县| 公安县| 明溪县| 静海县| 曲沃县| 西林县| 奉化市| 安福县| 新竹县| 茶陵县| 陇南市| 绥宁县| 巧家县| 辽宁省|