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