簡體   English   中英

如何從 ConfigParser 中提取數據

[英]How to to extract data from ConfigParser

我正在構建一個 cron 作業,並且必須從配置文件中讀取數據。 我正在使用 Python ConfigParser模塊來實現這一點,但我似乎無法使用命令行參數和子命令讀取數據。 我將 Python argparse模塊用於命令行參數和子命令。 請幫忙。

這是配置文件:

[ARGUMENTS]
n1=5
n2=7

這是完成工作的代碼:

import argparse
import sys
import configparser

def main(number, other_number):
    result = number * other_number
    print(f'The result is {result}')

if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='Running Cron Job...')
    parser.add_argument('-n1', type=int, help='A number', default=1)
    parser.add_argument('-n2', type=int, help='Another number', default=1)

    parser.add_argument('--config', '-c', type=argparse.FileType('r'), help='config file')

    args = parser.parse_args()

    if args.config:
        config = configparser.ConfigParser()
        config.read_file(args.config)

        # Transform values into integers
        args.n1 = int(config['DEFAULT']['n1'])
        args.n2 = int(config['DEFAULT']['n2'])
    main(args.n1, args.n2)

這是問題的正確答案。

我發現配置文件有部分,每個部分都由一個部分標題引導,就像這樣[SECTION] ,但是我的代碼在尋找配置文件中不存在的[DEFAULT]部分,而是包含一個[ARGUMENT]節標題,而不是[DEFAULT]

這是配置文件應如下所示:

[DEFAULT]
n1=5
n2=7

這是獲取配置數據的正確代碼:

注意:代碼很好,沒有任何改變

...
...
...

    if args.config:
        config = configparser.ConfigParser()
        config.read_file(args.config)

        # Transform values into integers
        args.n1 = int(config['DEFAULT']['n1'])
        args.n2 = int(config['DEFAULT']['n2'])
    main(args.n1, args.n2)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM