Python 替换文件前3行中的字符串

Python 替换文件前3行中的字符串,python,replace,Python,Replace,我有一个类似的文件: This is a letter B This is a letter B This is a letter B This is a letter B This is a letter B This is a letter B 使用python,我想用X替换前3行。例如: This is a letter X This is a letter X This is a letter X This is a letter B This is a letter B This i

我有一个类似的文件:

This is a letter B
This is a letter B
This is a letter B
This is a letter B
This is a letter B
This is a letter B
使用python,我想用X替换前3行。例如:

This is a letter X
This is a letter X
This is a letter X
This is a letter B
This is a letter B
This is a letter B
我使用的代码每行都会发生变化:

for line in fileinput.FileInput(File,inplace=1):
        line = line.replace('B','x',3)
        print line
有没有关于只替换前3个的建议,或者关于为什么line.replace不尊重前3个的建议

谢谢你。

你在打电话吗

line.replace('B','x',3)
在for循环内部,这意味着您要在每行中替换多达3个B。整个档案中没有3个B


要在Python中执行您喜欢的操作,您可以为读取的每一行增加一个计数器,并且仅当计数器小于3或4时,如果从1开始对行进行编号,则可以进行替换。

此程序可能会执行您想要的操作:

import fileinput
File = 'bbb.txt'

for line in fileinput.input([File], inplace=1):
    if fileinput.filelineno() <= 3:
        line = line.replace('B', 'x')
    print line.rstrip('\n')
请注意使用fileinput.input而不是fileinput.fileinput。.input调用建立全局状态,包括调用.filelineno的功能

注意使用fileinput.filelineno来确定行号。程序在前三行执行替换


请注意使用.rstrip'\n'删除原始换行符。打印操作将隐式添加一个换行符。

为什么不在range3上迭代三次呢