Python 读取Toml文件

本文介绍了一个使用Python解析Toml配置文件的示例代码,通过命令行参数读取文件路径,展示了如何读取并打印Toml文件中的各种数据类型,包括字符串、数组、嵌套对象等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Toml示例文件如前一篇。

代码:

# -*- coding: utf-8 -*-
from sys import argv
from os.path import exists
from toml import load


if __name__ == '__main__':
    if len(argv) < 2:
        print('缺少必要参数!')
        exit(-1)
    else:
        path = argv[1]

        if not exists(path):
            print(path + ' 不存在!');
        else:
            with open(path, 'r', encoding='utf-8') as fp:
                doc = load(fp)
                print('"Title" = {}'.format(doc['title']))
                print('"hosts" = [')
                a1 = doc['hosts']
                l = len(a1)
                for i in a1:
                    if l > 1:
                        print('\t{},'.format(i))
                        l = l -1
                    else:
                        print('\t{}'.format(i))

                print(']')
                owner_doc = doc['owner']
                print('"owner"."name" = {}'.format(owner_doc['name']))
                print('"owner"."organization" = {}'.format(owner_doc['organization']))
                print('"owner"."bio" = {}'.format(owner_doc['bio']))
                database_doc = doc['database']
                print('"database"."server" = {}'.format(database_doc['server']))
                a2 = database_doc['ports']
                l = len(a2)
                print('"database"."ports" = [')
                for i in a2:
                    if l > 1:
                        print('\t{},'.format(i))
                        l = l - 1
                    else:
                        print('\t{}'.format(i))

                print(']')
                print('"database"."connection_max" = {}'.format(database_doc['connection_max']))
                print('"database"."enabled" = {}'.format(database_doc['enabled']))
                servers_doc = doc['servers']
                alpha_doc = servers_doc['alpha']
                print('"servers"."alpha"."ip" = {}'.format(alpha_doc['ip']))
                print('"servers"."alpha"."dc" = {}'.format(alpha_doc['dc']))
                beta_doc = servers_doc['beta']
                print('"servers"."beta"."ip" = {}'.format(beta_doc['ip']))
                print('"servers"."beta"."dc" = {}'.format(beta_doc['dc']))
                clients_doc = doc['clients']
                a2 = clients_doc['data']
                l = len(a2)
                print('"clients"."data" = [')
                for i in a2:
                    if l > 1:
                        a3 = i
                        l1 = len(a3)
                        print('\t[')
                        for j in a3:
                            if l1 > 1:
                                print('\t\t{},'.format(j))
                                l1 = l1 - 1
                            else:
                                print('\t\t{}'.format(j))
                        print('\t],')
                        l = l - 1
                    else:
                        a3 = i
                        l1 = len(a3)
                        print('\t[')
                        for j in a3:
                            if l1 > 1:
                                print('\t\t{},'.format(j))
                                l1 = l1 - 1
                            else:
                                print('\t\t{}'.format(j))
                        print('\t]')

                print(']')

运行效果:

示例代码仓库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值