У меня есть файл с именем: 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")
Это строки одна под другой, но я использовал это только как пример для упрощения.
Таким образом, ваш счетчик должен находиться над строками или только в одной строке. И гораздо приятнее, чтобы ваши демо-данные и демо-код не противопоставлялись друг другу. демонстрационные данные используют name
, но dummy
и replaced
в коде — плохой пример.
Ваш упрощенный пример охватывает то, что вам нужно рассказать. имя1 имя1 имя1\nимя2 имя2 имя2 по имя11 имя12 имя23\nимя21 имя22 имя23. и так далее. Слишком много случаев.
Вы можете просто выполнять итеративную замену и заменять одно вхождение каждый раз.
Работайте с фрагментами для повышения производительности, если строка очень большая.
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")
Где бы вы ни были на планете, пусть моя искренняя благодарность достигнет вас. Я праздновал с радостью, так как я искал решение, подобное вашему, в течение нескольких дней самостоятельно. Спасибо большое, желаю тебе успехов на свете друг! Обнимаю!
Я рад, что смог помочь тебе, мой друг, всего тебе наилучшего.
Игнорировать чтение и запись файла и строк в вашем случае. Я даю код только для строковой строки, которую вы дали 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)
В вашем my_file.txt есть только одна строка?