【问题标题】:PYTHON parse file and substitute parameters recursivelyPYTHON 递归解析文件并替换参数
【发布时间】:2016-05-05 12:52:45
【问题描述】:

如何在 Python 2.7 中做到这一点:

我有一个文件名为 e.g. parameter-values.txt,其中包含 10 个或更多具有必要值的参数,如下所示:

param1=hello,dd
param2=test
param3=4g

等等。

而且我有很多文件在哪里定义了这个变量(但不是每个文件中的所有参数)。

文件1:

#!/bin/bash
param1="&*"
param3="&*"

another bash commands

所以,我的问题是:如何在循环中递归查找包含此参数/变量的文件,并在这些文件中用我自己的参数文件中的参数替换这些文件中的参数。

感谢每一个相关的答案。

【问题讨论】:

  • 您想用另一个值替换 File1 中的 param1 吗? (哪个?应该是hellodd还是hello,dd?)
  • 必须parameter-values.txt 包含与您描述的完全相同的值吗?不能是一个简单的“ini”文件吗?
  • 它可以是一切,但我从未使用过 ini,我想更改所有文件中的 param1,而不仅仅是在 file1 中,在所有包含它的文件中,并且 calues 是“hello,dd”或其他。
  • 好的,你的代码在哪里?如果您不提供任何帮助,您将不会得到太多帮助。现在,作为提示,您可以将参数放入 ini 文件中(检查docs.python.org/2/library/configparser.htmlstackoverflow.com/questions/8884188/…)。为了替换 "&*" 值,我不确定我会选择 python 脚本,但可能是 shell 脚本。
  • 我还没有任何脚本,现在我正在为我的问题寻找解决方案。感谢我阅读它的链接,而且我只有很多带有 1-5 个变量的 bash 脚本,我想从我的一个参数配置文件中递归地更改它,当我在“参数文件”中更改一个参数时,我想要在所有 bash 脚本中通过脚本更改值正如我所写的那样。而且那个ini看起来不错,所以我试试,

标签: python loops variables recursion substitution


【解决方案1】:

解决办法:

item_arr=(test= param2= paramX=)
new_param_arr=(test=\"hello\" param2=\"WWW\" paramX=\"XXX\")

var=0
for oldstring in "${item_arr[@]}"
do
grep -rl $oldstring | xargs sed -i "s/.*$oldstring.*/${new_param_arr[$var]}/g"
#echo -e "$oldstring\e[92m"
echo -e "${new_param_arr[$var]}\e[92m"
var=$((var+1))
done

我认为这是最好和最简单的解决方案,它可以正常工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2019-07-27
    相关资源
    最近更新 更多