微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

管理python中不同方法可用的配置变量的最佳方法

如何解决管理python中不同方法可用的配置变量的最佳方法

我有一个需要 6 个输入文件的 python 程序。这些文件的路径、列名和输出路径,我存储在一个 config.ini 文件中。我在 main 方法中通过 ConfigParser 阅读了这些内容。但是,如何使所有这些变量在函数中可用?

这是我拥有的代码片段:我正在从配置中读取 keywords。但是,由于它在其他函数中不可用,因此我必须明确传递它。问题是当我必须传递列名进行处理时,因为我不想要任何硬编码。这些列名太多,函数调用变得如此庞大。

def check_value(text,keywords):
    flag=-1
    for k in keywords:
        if k in text:
            flag=1
            break
    return flag
 
def create_keywords(path,keyword_col,keywords):
    df=pd.read_csv(path)
    df['new']=df[keyword_col].apply(lambda r:check_value(r,keywords))

def main(config_file_path):
    config = configparser.ConfigParser()
    config.optionxform = str
    config.read(config_file_path)
    keyword_dict_path=config.get('paths','keyword_dict_path')
    keywords=config.get('kws','keyword_list')
    keyword_df = create_keywords(cat_kw_dict_path,keywords)

if __name__ == '__main__':
    main('config\config.ini')

这是我的两个问题吗?

  1. 我没有将任何内容写回配置文件,我可以对所有这些变量使用 global 吗?
  2. 仅仅为了避免硬编码而将列名和每一个小东西都提供给配置是不是很糟糕?这是编写优秀代码的首选方式吗?

我阅读了 this 的答案,但是我认为我应该问这个问题,因为我拥有大量的配置值。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。