我有一個名為:my_file.txt
在這里面my_file.txt,我有一些字串,例如:
name1 name1 name1 name1 name1 name1 name1 name1 name1 name1
我需要在 1 到 10 上做一個批量回圈計數器,看起來像:
name1 name2 name3 name4 name5 name6 name7 name8 name9 name10
到目前為止,我只有這個,我在這里找到的:
https://www.geeksforgeeks.org/how-to-search-and-replace-text-in-a-file-in-python
但這只是將一個字串換成另一個字串。我需要使用柜臺。
search_text = "dummy"
replace_text = "replaced"
with open(r'my_file.txt', 'r') as file:
data = file.read()
data = data.replace(search_text, replace_text)
with open(r'my_file.txt', 'w') as file:
file.write(data)
print("Text replaced")
uj5u.com熱心網友回復:
您可以簡單地進行迭代替換并每次替換一個事件。
在字串非常大的情況下使用塊來提高性能
with open(r'my_file.txt', 'r') as file:
data = file.read()
search_text = "dummy"
replace_text = "replaced"
n_replaced = 0
index = 0
chunks = []
while True:
index = data.find(search_text)
if index == -1:
break
replace_text_counter = f"{replace_text}{n_replaced}"
chunks.append(data[:index])
data = data[index:].replace(search_text, replace_text_counter, 1)
n_replaced = 1
chunks.append(data)
with open(r'my_file.txt', 'w') as file:
file.write("".join(chunks))
print("Text replaced")
uj5u.com熱心網友回復:
在您的情況下忽略讀寫檔案和行。我給出的代碼只是處理您給出的字串行name1 name1 name1 name1 name1 name1 name1 name1 name1 name1:
string = "name1 name1 name1 name1 name1 name1 name1 name1 name1 name1"
li = string.split()
i=0
for i<len(li):
li[i]=li[i].replace("1",i 1)
return ' '.join(li)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/447412.html
