python regex replace返回一个额外的\ n

时间:2012-08-22 06:53:52

标签: python file search replace

我正在尝试用python 2.6替换文件中的一些文本

但是,这里返回一个额外的换行符是我的代码:

for line in fileinput.input('/etc/php5/apache2/php.ini', inplace=True):
   replace = re.sub(r'(post_max_size =).[0-9]+(M)', r'\1 64\2', line)
   print replace

输入:

post_max_size = 6M
sdfsdfsd
post_max_size = 4M
sdfsdf
post_max_size = 164M
dfsdfsdfsdfsdf

输出:

post_max_size = 64M

sdfsdfsd

post_max_size = 64M

sdfsdf

post_max_size = 64M

dfsdfsdfsdfsdf

3 个答案:

答案 0 :(得分:1)

您正在查看的额外输出来自print,如果您将文件写回,则不应看到额外的换行符。

试一试:print replace,

这是一个小问题,但您还应该选择一个不同的名称,因为replace是字符串标准库中方法的名称。

答案 1 :(得分:0)

你的正则表达式很好。 print添加换行符。请改用write

答案 2 :(得分:0)

尝试: 而是print replace,。尾随逗号会抑制换行符(但会添加尾随空格)。要获得完全控制,请使用__future__中的打印功能。