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上迭代三次呢