我正在尝试使用python创建一个类似googledrive的备份程序,该程序将备份到一个Linux设备,该设备将进一步备份到一个非现场位置tbd。在这方面我遇到了一些有趣的编码和计算机挑战。你知道吗
我现在正在处理的是“锁定”文件。那我说这个是什么意思?在Windows7中,如果您创建一个.txt文件,您可以在记事本(任何程序)中打开它,同时也可以在python程序中打开它。如果您在.txt文件中进行了更改并保存了更改,但在关闭它之前,您仍然可以在pythn中打开并查看更改。现在将文件更改为.docx windows文件并用word2007打开它。在word中打开时,在python中无法使用访问它,直到用户关闭它。你知道吗
现在如果你看一下googledrive,桌面上安装的不仅仅是web,你可以打开一个.docx文件并修改它。一旦你保存它,但在关闭之前谷歌驱动器已经同步文件。你知道吗
Google驱动器对文件的访问级别必须比简单的python低文件.open()命令。你知道吗
所以问题来了。有人知道用python访问文件的方法吗?这样我就不用等待用户关闭文件了。你知道吗
编辑1: 让我进一步解释。一旦我创建了一个包含所有文件和目录的sqlite数据库,我就会使用win32文件.ReadDirectoryChangesW()监视更改的功能。我的问题源于这样一个事实:当设置first install/run的应用程序时,它必须对所有文件进行编目,并且在windows office中打开的文件都被锁定,无法进行编目。有办法吗?你知道吗
许多备份工具都使用快照。然后,他们将直接从快照复制锁定的文件,而不是直接从文件系统复制它。如果您使用的是Windows,那么应该检查Windows VSS,有关详细信息,请参阅Microsoft documentation。否则,如果您所在的文件系统支持快照,请检查其文档。你知道吗
第三方工具
您可以使用
subprocess
Python模块运行第三方工具,这些工具将为您拍摄快照。你知道吗微软VSS
如果您想自己完成,您可能需要来自Win32 API的模块,例如
win32com
模块。你知道吗Github上还有一个项目似乎可以完成这个任务:pyshadowcopy
文件系统快照
根据文件系统的特性,您可能会发现允许您拍摄快照的python模块或工具。你知道吗
相关问题 更多 >
编程相关推荐