gpt4 book ai didi

python - 需要有关根据配置文件中的键获取值的帮助

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:33:52 25 4
gpt4 key购买 nike

我有一个包含类似数据的文件

[xxx]

name = xxx
address = bangalore

[yyy]

name = yyy
address = sjc

请帮我得到一个正则表达式,我可以根据 xxx 或 yyy(xxx 或 yyy 和地址或名称是输入)获取地址/名称值

最佳答案

如果您的文件就是这样,您可以用 awk 做类似的事情(即 name 与该部分相同,并且它在 地址):

$ awk -v nm='yyy' -F ' *= *' '$1=="name" && $2==nm{infi=1; next}
$1=="address" && infi {print $2; infi=0}' file
sjc

或者,更好的是,您可以获得该部分,然后在出现时获取键、值并打印它们,然后退出:

$ awk -v sec='yyy' -v key='address' '
BEGIN{
FS=" *= *"
pat=sprintf("^\\[%s\\]", sec)}
$0 ~ pat {secin=$1; next}
NF==2 && $1==key && secin ~ pat {print $2; exit}' file
sjc

如果你想收集所有部分及其键/值对,你可以这样做(使用 gawk):

$ gawk 'BEGIN{FS=" *= *"}
/^\[[^\]]+\]/ && NF==1 {sec=$1; next}
NF==2 {d[sec][$1]=$2}
END{ for (k in d){
printf "%s: ",k
for (v in d[k])
printf "\t%s = %s\n", v, d[k][v]
}
}' file
[xxx]: address = bangalore
name = xxx
[yyy]: address = sjc
name = yyy

配置或 .ini 文件可以像 csv 一样引用,所以最好使用完整的配置文件解析器。您可以使用 PerlPython具有用于解析 .ini 或配置类型文件的强大库。

Python 示例:

#!/usr/bin/python

import ConfigParser
config = ConfigParser.ConfigParser()
config.read("/tmp/file")

然后您可以抓取部分、每个部分中的项目或特定部分中的特定项目:

>>> config.sections()
['xxx', 'yyy']
>>> config.items("yyy")
[('name', 'yyy'), ('address', 'sjc')]
>>> config.get("xxx", "address")
'bangalore'

关于python - 需要有关根据配置文件中的键获取值的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44030958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com