zoukankan      html  css  js  c++  java
  • [转]BT源代码学习心得(二):程序运行参数的获取

    发信人: wolfenstein (NeverSayNever), 个人文集
    标  题: BT源代码学习心得(二):程序运行参数的获取
    发信站: 水木社区 (Sat Jul 30 21:08:27 2005), 文集
    (本文包含HTML标记,终端模式下可能无法正确浏览)
        把这部分单独列举出来,是因为我觉得BT的程序在处理配置参数方面的这部分代码很有
    参考价值。
        程序的配置参数首先来源于BitTorrent/defaultargs.py。这个模块中包含了一些参数
    的默认值,由于它们是直接编译进BT的模块中,因此即使其它的配置文件都丢失后,程序还
    是有一些默认值可以作为参数。defaultargs.py中定义了一个函数get_defaults可以让各个
    可执行模块得到它们对应的默认值。例如btdownloadgui和btmaketorrentgui得到的默认值
    是不同的。而且defaultargs.py中为可执行模块生成的默认属性集合是一个以三元组为元素
    的列表。每一个三元组代表一条属性(也就是一条程序的配置参数),每个三元组包含了属性
    的名称,属性的值和该属性的说明。值得注意的是,在后面我们可以看到,属性的说明直接
    作为帮助信息输出给用户。
        在获取完默认值后,各个可执行模块通常都调用BitTorrent/configfile.py中的函数
    parse_configuration_and_args来进一步从可能存在的配置文件和命令行参数中对程序运行
    的一些参数进行调整。这个函数中首先从配置文件中获取信息,值得一提的是它获取配置文
    件的方法。BT将在用户的"主目录"下建立一个.bittorrent的目录,并且从这里读取配置文
    件(如果这个文件不存在就建立一个,下次就存在了)。其中"主目录"的获取方法在
    BitTorrent/__init__.py中,它的实现方法比较巧妙,利用了python的os和os.path库进行
    操作,可以针对不同的操作系统使用合适的方法得到这个"主目录"。在windows下,这个目
    录通常是文档和设置目录下的用户名目录下的"Application Data",而在linux下这个目录
    就是~。
        在parse_configuration_and_args中,还要调用BitTorrent/parseargs.py模块中的
    parseargs对命令行中输入的参数进行处理。根据其中的注释,可以看出程序将会把以下格
    式的参数作为一种控制方面的操作(options)而改变原来的配置,其它的参数都只是简单得
    堆在args数组中供可执行模块自己去处理。这些格式有--aaa 1型,即以两个-号开头的参数
    ,将和他后面的参数一起,构成一个配置项(aaa=1),-a1型,即以一个-号开头的参数,直
    接取一个字母作为配置项的属性名,这个参数后面的子字符串作为配置项的属性值(a=1),
    -a 1型,即以一个-号开头的参数,但是后面只有一个字母,就将下一个参数作为属性值(因
    此这里也是a=1)。
        经过这些处理后,程序的其它部分就可以很方便得使用配置好的参数了,例如:
        if self.config['xxx']
             .......
        或者
        aaa = self.config['bbb']
        等等。

  • 相关阅读:
    sql 2008查看进程情况和对应语句,检查死锁进程
    sqlserver2008锁表语句详解(锁定数据库一个表)
    sqlserver 中的时间算法
    SQL server 2008 数据库优化常用脚本
    Win7下64位机安装SQL2000
    Git回退到服务器某个版本正确姿势
    一个有趣的倒计时问题
    如何申请AWS免费ACM
    AWS账号、用户、服务之间的关系
    [RDL]中多行组列组占比报表制作
  • 原文地址:https://www.cnblogs.com/YYi_H/p/1934361.html
Copyright © 2011-2022 走看看