我需要通过python编辑一个配置文件,我尝试在stackoverflow和google上搜索,但它们并没有覆盖我的情况,因为我需要替换文件中的行并在搜索中执行匹配。
另外,我发现的内容涵盖了如何对一行进行替换,我将在文件中执行至少8行替换,我想知道是否有一种更干净、更优雅的方法来执行此操作,而不是总共放置10行替换(foo,bar)。
我需要“匹配”像“ENABLEPRINTER”、“PRINTERLIST”、“PRNT1.PORT”这样的行。 我想匹配这些文本并忽略以下内容(例如:“=PRNT1,PRNT2”)。
所以我会做些
replace('ENABLEPRINTER', 'y')
replace('PRINTERLIST', 'PRNT3)
文件如下所示:
ENABLEPRINTER=n
PRINTERLIST=PRNT1, PRNT2
PRNT1.PORT=9600
PRNT1.BITS=8
另外请注意,这些文件大约有100行,我需要编辑其中的10行。
非常感谢你的帮助。
更新:
使用@J.F.Sebastian发布的代码,我现在得到以下错误:
configobj.ParseError: Parse error in value at line 611.
文件的第611行是:
log4j.appender.dailyRollingFile.DatePattern='.'yyyy-MM-d
所以问题出在“性格”上。
如果我注释掉这一行,脚本就可以处理@J.F.Sebastian发布的代码了。
如果文件是^{} 格式,则可以使用^{} :
它不是很健壮,但是各种各样的修复方法可以使下一个来的人受益。
要在短字符串中多次替换:
要替换配置文件中的变量名(使用^{} module ):
如果您所说的
replace('ENABLEPRINTER', 'y')
是指将y
赋给ENABLEPRINTER
变量,那么:似乎
configobj
不兼容:你可以引用它:
或:
或者
conf.update()
执行类似的操作:之前:
之后:
太简单了,无法确定。说出错误或弱点是什么。
正则表达式的优点是它们可以很容易地调整到特定的情况。
是的。
编辑:
我刚刚看到:
“我想做的是给变量赋一个新值”
你可以早点告诉我!
请给我一个前后文件的例子。
是的。
编辑2
下面是更改文件中某些变量值的代码:
之前:
之后:
相关问题 更多 >
编程相关推荐