Как добавить файл в начало файла, используя python, seek (0,0) не работает - PullRequest
0 голосов
/ 26 июня 2019

Я пишу программу на Python.Я хочу сохранить обновленный файл, чтобы сохранить изменение версии.Как добавить строки в начале файла.Я пытался искать (0,0), но он не работает

Есть ли что-то, что мне нужно изменить код

firfox.txt

 firefox-x 46.0:
 google 5.1.0.1:
     - request

file.py

 import re
 rx = r'\d+(?=:$)'
 with open('firfox.txt', 'r') as fr:
     data = fr.read()
     fr.seek(0,0)
     with open('firfox.txt', 'a') as fw:
         fw.seek(0,0)
         fw.write('\n')
         fw.write(re.sub(rx , lambda x: str(int(x.group(0)) + 1), data, 1, re.M))

Я написал другой файл.py

import re
rx = r'\d+(?=:$)'
with open('firfox.txt', 'r+') as fr:
    data = fr.read()
    fr.seek(0,0)
    fr.write(re.sub(rx , lambda x: str(int(x.group(0)) + 1), data, 1, re.M))
    fr.write(data)

Здесь несколько строк повторяются, как будто я выполняю дважды firefox-x 46.0: строка идет дважды

Новый ожидаемый firfox.txt показан ниже.однократное выполнение

 firefox-x 46.1:
 google 5.1.0.1:
     - request
 firefox-x 46.0:
 google 5.1.0.1:
     - request

При повторном выполнении ожидаемый файл Python будет ниже.

 firefox-x 46.2:
 google 5.1.0.1:
     - request
 firefox-x 46.1:
 google 5.1.0.1:
     - request
 firefox-x 46.0:
  google 5.1.0.1:
     - request

1 Ответ

0 голосов
/ 26 июня 2019

Попробуйте это:

 import re
 rx = r'\d+(?=:$)'
 with open('firfox.txt', 'r') as fr:
     data = fr.read()
     fr.close()
     with open('firfox.txt', 'w') as fw: # w mode always start from beginning 
         fw.write(re.sub(rx , lambda x: str(int(x.group(0)) + 1), data, 1, re.M))   
         fw.write('\n')
         fw.write(data) 
         fw.close()

Просто запишите данные предыдущего текстового файла после записи новых данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...