2016-03-17 71 views
0

我有一個簡單的程序,用於處理某些文本文件中的某些存儲數據。不過,我必須將名稱和密碼存儲在不同的文件中以供Python讀取。覆蓋Python中的特定行

我想知道是否可以在一個文件的兩個單獨的行上獲得這兩個單詞(名稱和密碼),並根據我選擇覆蓋的內容獲取python來覆蓋其中一行(密碼或名字)。

我可以讓Python讀取特定行:

linenumber=linecache.getline("example.txt",4) 

理想ID像這樣的事情:

linenumber=linecache.writeline("example.txt","Hello",4) 

所以這將只寫 「你好」,在 「example.txt中」 只在線4.

但不幸的是,它似乎並不那麼簡單,我可以得到的文字存儲在單獨的文件,但整體做這個更大的規模,我會有很多Ø f文本文件的所有命名都是不同的,而且文字文字不同。

如果有人能夠提供幫助,將不勝感激!

謝謝,詹姆斯。

回答

0

您可以通過內置的open()函數嘗試:

def overwrite(filename,newline,linenumber): 
    try: 
     with open(filename,'r') as reading: 
      lines = reading.readlines() 
     lines[linenumber]=newline+'\n' 
     with open(filename,'w') as writing: 
      for i in lines: 
       writing.write(i) 
     return 0 
    except: 
     return 1 #when reading/writing gone wrong, eg. no such a file 

要小心!它將所有行重新寫入一個循環中,當涉及異常時example.txt可能已經空白。您可能希望始終將所有行存儲在列表中,以將它們寫回到異常文件中。或者保留舊文件的備份。