Я знаю, что у тебя уже есть много ответов. Я подумал, что немного упрощу ваш код. Вам нужно прочитать только первую строку.
with open('your_filename.txt', 'r+') as f: #update your_filename with your filename
text = f.readline()
print ('previous value in file :', text)
cuser = int(text[11:text.index('@')]) + 1
text = text[:11]+str(cuser)+text[text.index('@'):]
f.seek(0)
f.write(text)
print ('new value in file : ', text)
Вывод каждый раз при запуске изменяется. Мой первый запуск дал мне:
previous value in file : uname="auto1@mailnesia.com"
new value in file : uname="auto2@mailnesia.com"
Содержимое файла отображается как:
uname="auto2@mailnesia.com"
pwd="abcdef"
Мой 4-й запуск дал мне:
previous value in file : uname="auto3@mailnesia.com"
new value in file : uname="auto4@mailnesia.com"
Содержимое в файл отображается как:
uname="auto4@mailnesia.com"
pwd="abcdef"
Как видите, файл обновляется каждый раз, когда я запускаю код. Я не уверен, зачем вам нужно l oop несколько раз. Вы пытаетесь изменить значение в файле несколько раз при каждом запуске?
Я не уверен, действительно ли вам нужен al oop. Я обновил свой код, чтобы создать al oop, и он все еще работал. Вот обновленный код. Я просто использовал простой for loop
for i in range(4):
with open('xyz.txt', 'r+') as f: #update your_filename with your filename
text = f.readline()
print ('previous value in file :', text)
cuser = int(text[11:text.index('@')]) + 1
text = text[:11]+str(cuser)+text[text.index('@'):]
f.seek(0)
f.write(text)
print ('new value in file : ', text)
Вот результат, который я получил:
previous value in file : uname="auto4@mailnesia.com"
new value in file : uname="auto5@mailnesia.com"
previous value in file : uname="auto5@mailnesia.com"
new value in file : uname="auto6@mailnesia.com"
previous value in file : uname="auto6@mailnesia.com"
new value in file : uname="auto7@mailnesia.com"
previous value in file : uname="auto7@mailnesia.com"
new value in file : uname="auto8@mailnesia.com"
Значение в файле:
uname="auto8@mailnesia.com"
pwd="abcdef"