繁体   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