【问题标题】:What is the easiest way in python to modify linux config file?python中修改linux配置文件的最简单方法是什么?
【发布时间】:2011-04-30 22:49:51
【问题描述】:

我有一些配置 linux 计算机的 python 脚本。其中一项任务是修改配置文件以进行颠覆。这个文件,~/.subversion/servers 非常简单,看起来像这样:

# store-passwords = no
# store-plaintext-passwords = no
# store-ssl-client-cert-pp = no
# store-ssl-client-cert-pp-plaintext = no
... lots of other options ...

我的脚本的任务是找到一个必需的选项,例如store-plaintext-passwords,并将其设置为指定的值,例如yes。问题是:脚本可以在同一台机器上运行多次,所以如果第一次运行这个选项可以只注释,如果第二次运行可以取消注释并设置为yes,第三次运行可以指出它未注释-但设置为no 等。目前我有一个相当复杂的代码,用于搜索字符串文件,将其拆分为注释/名称/值,如果需要,取消它,如果需要更改值并替换它。也许这是一种更简单的方法?

【问题讨论】:

    标签: python


    【解决方案1】:

    ~/.subversion/servers 文件为 INI 格式。

    所以你可以使用 ConfigParser 来实现你需要的任何东西。

    http://docs.python.org/library/configparser.html

    【讨论】:

    • ConfigParser 很好 - 但它将如何处理 cmets?我不需要从结果文件中删除所有注释字段^_^
    • 没有人关心自动生成或操作文件中的 cmets
    • @Eye of Hell - ConfigParser 支持 #; 样式 cmets。所以你很高兴去这里。它不会剥离 cmets。
    • @Senthil Kumaran:configparser 忽略 cmets;如果您使用该模块编写配置文件,您将丢失所有 cmets。 ideone.com/3n3Vjideone.com/sGVnF
    • J.F. Sebastian - 感谢您指出这一点。这里仍然是一个开放的错误:bugs.python.org/issue1410680
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-09
    • 2011-05-12
    • 2010-09-12
    • 2012-04-02
    相关资源
    最近更新 更多