2016-09-04 40 views
1

我有两个文件一个让我们假设键列表,而其他文件有像下面这样写的键和值对。Python:写在一个文件中的特定位置

keys```values

现在,假设我必须搜索在以后文件中的每个键具有键值对和匹配的钥匙,必须写在特定键一些值价值的位置。

这是我的代码,它在运行时匹配模式,显示控制台上的确切输出,但是在文件写入时写入文件末尾。

import re 
with open('perceive.txt','r') as jawabdo: 
    for harsawal in jawabdo: 

     with open('answers.txt','ab+') as letmethink: 
      for spquestion in letmethink: 
       sawal,jawab = spquestion.split("```") 
       matching = re.match(sawal.lstrip('\r'),harsawal) 
       if matching: 
        size = len(jawab) 
        if(size == 1): 
         jawab = "coming soon" 
         letmethink.write(jawab) 
         print('Answers written successfully!!!') 
     letmethink.close() 
jawabdo.close() 

注: perceive.txt是与密钥的文件,同时answers.txt是具有key```value对的文件。

+0

读答案/不管。然后把它写到最后,就像你喜欢的那样。 –

+0

它就像文件将会增长一样,并且是一个动态的文件,它会随着每个新输入而不断更新,所以在这种情况下,存储在列表/字典中然后写回文件的想法似乎不可行。随着每个新的关键值对文件的大小必须增加并且持续增加。 –

回答

1

有一个在特定的地方写在文本文件中没有可能的方式

一个很好的选择是:

  • 读取文件everything = letmethink.read()
  • 插入新的数据everything = everything[:pos] + new_data + everything[pos + 1:]
  • 删除文件letmethink.truncate()
  • 完全替换文件letmethink.write(everything)

如果你不想这样做,那么你必须使用一个数据库和sqlite3的,使用它可以在特定的位置完全首先在列表/字典中插入数据

相关问题