【问题标题】:Python configparser: Copy comments from input filePython configparser:从输入文件中复制注释
【发布时间】:2013-11-19 14:47:49
【问题描述】:

我正在使用 configparser 和 Python 3.3 创建一个对配置文件进行一些小修改的脚本。这些配置文件通常包含注释掉的行,如下所示:

[Section]
Value1=Foo
;Very important comment
;Another very important comment
Value2=Bar

可以理解,Python 在编写新版本的配置文件时会去掉这些,但这是个问题。有没有办法将 cmets 复制到新的配置文件中? (不幸的是,顺序也很重要。多亏了 OrderedDict,配置选项的顺序得以正确维护,但 cmets 的顺序也需要维护,希望不会成为问题。)

谢谢!

【问题讨论】:

标签: python configparser


【解决方案1】:

这是一个简单的技巧/解决方法:将REM_x= 放在前面,而不是注释,以将注释变成一个选项(您的代码将忽略该选项):

[Section]
Value1=Foo
REM_1=Very important comment
REM_2=Another very important comment
REM_Value2=Bar
Value2=Baz

【讨论】:

  • 那么我需要做的是替换所有; 字符,然后再将它们改回来?另外,您为什么在答案中将REM_ 添加到Value2
  • 更改; 字符会起作用,但何必呢?使用 cmets 作为配置选项创建配置并保留它们。最后一个示例是演示如何注释掉普通选项。
  • 问题是我没有创建这些文件,我需要修改已经存在的文件。
  • 啊。在这种情况下,将 ; 替换为 REM_ + 数字 + = 在许多情况下应该可以工作(key=value # comment 会失败)
  • 以后删除REM_s 的最佳方法是什么?
猜你喜欢
  • 2011-10-01
  • 1970-01-01
  • 2012-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-22
相关资源
最近更新 更多