![](/img/trans.png)
[英]Compare two text files, replace lines in first file that contain a string from lines in second file
[英]Replace string in first 3 lines of a file
我有一个与此类似的文件:
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
关于仅替换前三个的任何建议,或者关于line.replace为什么不尊重前三个的建议?
谢谢。
该程序可能会执行您想要的操作:
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')
删除原始换行符。 换行将通过print
操作隐式添加。
你在打电话
line.replace('B','x',3)
在for循环中,这意味着您要在每行中最多替换3个B。 (整个文件中没有3B。)
要执行您喜欢的操作(在Python中),您可以为每次读取的行增加一个计数器,并且仅在您的计数器小于3时才进行替换(如果从1开始对行进行编号,则为4)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.