如何使用python将文件追加到文件的开头,seek(0,0)不起作用

时间:2019-06-26 10:16:52

标签: python file-io

我正在用python编写程序。我想保存更新的文件以保持版本更改。如何在文件开头附加行。我尝试了seek(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))

我还写了另一个file.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 :(得分:0)

尝试一下:

 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()

只需在写入新数据后写入先前的文本文件数据