python不小心删除恢复上一步_恢复百度云盘本地误删的文件脚本—python | 学步园...

本文介绍了一段Python脚本,用于恢复在百度云同步盘中被删除的文件。当删除的文件在delete目录下且manifest.xml存在时,通过解析XML文件并恢复文件内容。
摘要由CSDN通过智能技术生成

今天被同步盘搞得焦头烂额。

辛苦码的代码(除了重要的、备份过的)都被删掉了……

当时我就石化了。。。

随后发现同步盘目录有个delete目录,里面还有manifest.xml,和一堆改了名的文件,

看到manifest.xml的内容时,瞬间觉得有救了,立马开搞python

废话不多说,直接上代码:

#-*- coding:utf-8 -*-

from xml.etree import ElementTree

import os

import sys

reload(sys)

sys.setdefaultencoding( "utf-8" )

def convertfile(cachePath,orgPath):

'''恢复文件'''

start=0;

while True:

index = orgPath.find('\\', start)

if index == -1:

break

start = index + 1

orgDir=orgPath[:start]

print 'orgDir:',orgDir

if not os.path.exists(orgDir):

os.makedirs(orgDir)

if not os.path.exists(orgPath) or(os.path.exists(orgPath) and (os.path.getsize(orgPath) != os.path.getsize(cachePath))):

file_in=open(cachePath, "rb")

file_out=open(orgPath, "wb")

file_out.write(file_in.read())

file_in.close()

file_out.close()

def read_xml(text):

'''读xml文件'''

root = ElementTree.fromstring(text)

lst_node = root.getiterator("record")

for node in lst_node:

cp=node.attrib['cachePath']

op=node.attrib['orgPath']

cp=cp.replace('~','.')

op=op.replace('~','.')

print cp+'->'+op

convertfile(cp,op)

if __name__ == '__main__':

'''将本文件放在云同步盘的根目录下,

将mani_file改为需要恢复的manifest文件'''

mani_file=".\\.baohe.cache\\.delete\\20140412\\manifest.xml"

read_xml(open(mani_file).read())

本文件在Python2.7.6下正常,3.4貌似有问题(汗

将本文件(假如叫做huifu.py)放在云同步盘的根目录下,比如云同步盘在“d:\baiduyun\”,那么文件应该在“d:\baiduyun\”下,最终是这样的“d:\baiduyun\huifu.py”

千万不要轻易从百度云上删除已经上传的文件啊!血泪教训。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值