0

我正在尝试用 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
4

3 回答 3

1

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

试试这个:print replace,

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

于 2012-08-22T06:55:45.193 回答
0

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

于 2012-08-22T06:58:38.350 回答
0

尝试: print replace,改为。尾随逗号抑制换行符(但添加尾随空格)。为了完全控制,请改用打印功能__future__

于 2012-08-22T06:58:48.327 回答