用于修改配置文件的脚本工具

2024-09-29 18:54:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我们正在修改一些配置文件的预期格式,我想创建一个脚本来将旧格式的文件转换为新格式。然而,我的脚本编写技巧已经很生疏了,我不得不很少编写脚本,以至于在我再次需要脚本工具时忘记了它们。我在找如何写剧本的建议。我最复杂的更改是修改ini文件,当前将有多行代码,如下所示:

你知道吗设备名称=xxx

我想把名字改成一个标签,然后在名字后面加上一些东西,使它独一无二。特别是在这种情况下,我可能会使用文件所在文件夹的名称。因此,如果文件位于文件夹YY中,我会将上面的更改为:

device.label = xxx
device.name = xxx_YY

两者的顺序无关紧要。多重设备名称值将存在于每个文件中,并且必须更新所有值。你知道吗

我想知道什么样的工具最适合解决这个问题。这是简单地在bash脚本中完成的,还是应该看看python。如果这是在bash中完成的,那么有人能告诉我应该使用哪个bash工具吗。我想我可以让sed或awk这样做,但我还不知道怎么做。如果需要的话,我可以计算出确切的语法(尽管语法是受欢迎的!),但如果您能为这项工作提供一个好的工具,我们将不胜感激。你知道吗


Tags: 文件工具脚本文件夹名称bash技巧device
2条回答

以前也有类似的问题……Duplicate

import configparser
filename = r'C:\directory\sub_directory\FILE.INI'
config = configparser.ConfigParser()
config.read(filename)
config['device.label'] = config['device.name']
modified_name = str(config['device.name']) + '_' + filename.split['\\'][2]
config['device.name'] = modified_name

with open(filename, 'w') as configfile:
    config.write(configfile)

将产生:

device.label = xxx
device.name = xxx_subdirectory

这将需要修改,如果说,你有节在你的文件。你知道吗

这正是awk发明的工作类型,而且做得最好。如果没有更多的样本输入很难说,但是像这样的东西听起来像是你需要的:

awk -v dir="$(basename "$PWD")" '{lbl=$0; sub(/name/,"label",lbl); print lbl RS $0 "_" dir}' file

相关问题 更多 >

    热门问题