Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中是否有用于临时备份和恢复文本文件的模块_Python_Backup - Fatal编程技术网

Python中是否有用于临时备份和恢复文本文件的模块

Python中是否有用于临时备份和恢复文本文件的模块,python,backup,Python,Backup,我需要在运行时修改文本文件,但在以后恢复其原始状态(即使计算机崩溃) 我的程序定期运行。会话结束后,可以更改该文件的原始状态,但原始状态在运行时不会更改 此文本文件的多个实例在多个目录中具有相同的名称。我的程序在每个目录中运行(但不是并行运行),但根据目录内容的不同,它会执行不同的操作。选择这样的工作目录的顺序完全是任意的 由于每个目录中的文件名相同,因此最好将备份文件存储在稍微不同的位置(即,可以将父目录名附加到备份目标路径) 我现在要做的是用一个自写类备份和还原文件,并在启动时检查当前目录的

我需要在运行时修改文本文件,但在以后恢复其原始状态(即使计算机崩溃)

我的程序定期运行。会话结束后,可以更改该文件的原始状态,但原始状态在运行时不会更改

此文本文件的多个实例在多个目录中具有相同的名称。我的程序在每个目录中运行(但不是并行运行),但根据目录内容的不同,它会执行不同的操作。选择这样的工作目录的顺序完全是任意的

由于每个目录中的文件名相同,因此最好将备份文件存储在稍微不同的位置(即,可以将父目录名附加到备份目标路径)

我现在要做的是用一个自写类备份和还原文件,并在启动时检查当前目录的上一次备份是否正确还原。 但是我的实现需要认真的重构,现在我感兴趣的是,是否已经为这种任务实现了库

编辑


版本控制似乎是个好主意,但实际上有点过头了,因为它需要网络连接,通常需要服务器。其他VCS需要安装客户端。如果使用纯python解决方案,我会更高兴,但至少它应该是跨平台的、可移植的、足够小的(实现版本控制…就像svn(参见pysvn)一样,只要repo在同一台服务器上,它就应该很快…并且允许回滚到文件的任何版本…可能是杀伤力过大,但这会使一切都可逆


您不需要服务器…您可以拥有本地版本控制,这应该很好…

Git、Subversion或Mercurial是您的朋友。

为什么不做每一个unix、mac和Windows文件多年来都做过的事情呢?创建一个锁文件/工作文件概念

选择要编辑的文件时:

  • 检查是否存在活动锁或崩溃的备份
  • 如果文件被锁定或崩溃,请提供“恢复”选项
  • 否则,请开始编辑文件
  • 编辑倾向于执行以下一项或多项操作:

  • 将原始文件复制到“%(文件名)s.backup”中
  • 创建“.”(文件名)s.lock”以防止其他人使用它
  • 完成编辑后,锁将消失,备份将被删除
  • 有时事情会稍微颠倒过来,而原始文件会保留在原来的位置,而.backup是活动编辑;成功后,.backup将替换原始文件


    如果你在linux机器上使vi或其他一些文本程序崩溃,你会看到这些文件被创建前缀,因此它们通常隐藏在命令行中。Word/Powerpoint/等都做类似的事情。

    我没有否决投票……但请查看我对我的编辑answer@JoranBeasley是的,它是为那些实际上投了反对票的人准备的。(如果帽子/鞋子不合适,它不是为你准备的。:)嗯,用我的母语来说,这听起来更亲切)是的,我会考虑的,谢谢。但让我看看是否也提到了其他解决办法。简单,可以在崩溃时手动恢复。听起来比我的主意好。谢谢我应该想到的。