簡體   English   中英

Python的新功能:通過在行中的位置替換字符串

[英]New to Python: Replacing a string by its position in a line

假設我有一個包含三行這種結構的文件:

foo
Black sheep: 500
bar

我想做的是將“ Black Sheep:500”更改為600、700等的迭代,以替換舊的。 我可以想到一種通過search&replace進行操作的方法,但是我正在尋找一種更優雅的方法,方法是替換行中的某個位置(此處為pos.3)。

例如,在awk / shellscripting中,它的工作方式如下:

cat filename | awk '$1 ~ /Black:/ { print ($1, $2, 600); next }; { print $0 }'

awk在文件中查找“ Black”,並打印單詞“一”,“第二”和“ 600”以及文件的其余部分。

Python中有類似的東西嗎?

謝謝

我們可以簡單地模仿兩行的awk行為:)

for line in lines:
    if line.startswith('Black'):
        line_parts = line.split()
        print line_parts[0], line_parts[1], 600
    else:
        print line

原因基本上是awk所做的,在空白處分割。

>>> for line in open("file"):
...     sl=line.split()
...     if "Black" in sl[0] :
...         sl[2]="600"
...         line=' '.join(sl)
...     print line.rstrip()
...
foo
Black sheep: 600
bar

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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