簡體   English   中英

是否有用於臨時備份和還原Python中文本文件的模塊

[英]Are there a modules for temporarily backup and restore text files in Python

我需要在運行時修改文本文件,但稍后再恢復其原始狀態(即使計算機崩潰)。

我的程序定期運行。 會話結束后,可以更改該文件的原始狀態,但在運行時不會更改原始狀態。

該文本文件的多個實例在多個目錄中具有相同的名稱。 我的程序在每個目錄中運行(但不是並行運行),但是根據目錄內容的不同,它會執行不同的操作。 這樣選擇工作目錄的順序完全是任意的。

由於每個目錄中文件的名稱都相同,因此將備份文件存儲在稍有不同的位置(例如,父目錄名稱可以附加到備份目標路徑)似乎是個好主意。

我現在要做的是使用自寫類備份和還原文件,並在啟動時檢查當前目錄的先前備份是否已正確還原。 但是我的實現需要認真的重構,現在我很想知道是否已經為此類任務實現了庫。

編輯

版本控制似乎是一個好主意,但實際上有點過頭了,因為它需要網絡連接並且通常需要服務器。 其他VCS需要安裝客戶端。 我會更喜歡純Python解決方案,但至少它應該是跨平台的,可移植的並且足夠小(例如,<10mb)。

實施版本控制...像svn(請參見pysvn)一樣,只要存儲庫位於同一服務器上就應該很快...並且允許回滾到該文件的任何版本...也許過大了,但這將使所有內容都可逆

http://pysvn.tigris.org/docs/pysvn_prog_guide.html

您不需要服務器...您可以具有本地版本控制,應該沒問題...

為什么不做每一個unix,mac,window文件多年來所做的事情-創建一個lockfile / working file概念。

選擇文件進行編輯時:

  1. 檢查是否有活動的鎖或崩潰的備份。
  2. 如果文件被鎖定或崩潰,請提供“恢復”選項
  3. 否則,開始編輯文件...

編輯傾向於執行以下一項或多項操作:

  1. 將原始文件復制到“。%(filename)s.backup”中
  2. 創建一個“。%(filename)s.lock”以防止其他人對其進行操作
  3. 完成編輯后,鎖將消失,.backup將被刪除。

有時情況略有相反,當.backup是活動編輯時,原始文件保留在原位; 成功的取代的.backup原

如果在Linux機器上使vi或某些其他文本程序崩潰,則會看到這些文件已創建。 需要注意的是,他們通常有一個點(。)前綴,所以他們通常隱藏在命令行上。 Word / Powerpoint / etc都做類似的事情。

Git,Subversion或Mercurial是您的朋友。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM