0

ファイル内の一部のテキストをPython2.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 に答える