簡體   English   中英

替換文件前三行中的字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM