![](/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.