【发布时间】:2015-10-29 15:43:38
【问题描述】:
相对 Python 新手,我正在编写一个脚本,该脚本将 csv 文件作为其输入,将其逐行拆分为其组成字段并以另一种格式输出。到目前为止,我所拥有的通常效果很好。
每个传入的 csv 行都有特定的字段,分别读入变量“txnname”和“txnmemo”。在我写出包含这些的行之前,我需要针对特定的字符串序列测试它们并根据需要进行修改。目前,我将这些测试硬编码到脚本中,如下所示
if ('string1' in txnname) and ('string2' in txnmemo):
txnname = 'string3'
if 'string4' in txnname:
txnname = 'string5 ' + txnmemo
'stringx' 在这里被用来替换我想要使用的实际文本。
我真正想做的是从脚本中完全删除搜索字符串、变量名和修饰符字符串,并将它们放在脚本旁边已经存在的配置文件中,并包含通过 ConfigParser 读入脚本的各种参数.这样我就不必在每次想要测试新条件时修改代码。这样做的“hacky”方式似乎是在从配置文件读取的文字 Python 语句上以某种组合使用 eval/exec,但是几乎每个人都说几乎总是有一个更好的替代 eval/exec。但是,尽管进行了大量研究,但我无法想出这种替代方案。我已经读过以某种方式使用字典的提及,但无法理解这是如何工作的,尤其是在具有多个要测试的条件的“If”语句中(如上所述)
感谢您的任何建议。
【问题讨论】:
标签: python csv configparser