恢复百度云盘本地误删的文件脚本(简单方法)


Posted in Python onOctober 21, 2017

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

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

当时我就石化了。。。

随后发现同步盘目录有个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貌似有问题(汗)

python可以在官网下载:https://www.python.org/downloads/

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

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

以上这篇恢复百度云盘本地误删的文件脚本(简单方法)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中requests爬去网页内容出现乱码问题解决方法介绍
Oct 25 Python
python画一个玫瑰和一个爱心
Aug 18 Python
Python实现将Excel转换成为image的方法
Oct 23 Python
Python实现将HTML转成PDF的方法分析
May 04 Python
详解Python中的正斜杠与反斜杠
Aug 09 Python
Python从文件中读取指定的行以及在文件指定位置写入
Sep 06 Python
Python队列、进程间通信、线程案例
Oct 25 Python
Python生成器generator原理及用法解析
Jul 20 Python
matplotlib基础绘图命令之errorbar的使用
Aug 13 Python
Python中使用Lambda函数的5种用法
Apr 01 Python
python基于机器学习预测股票交易信号
May 25 Python
Python torch.flatten()函数案例详解
Aug 30 Python
Python实现对百度云的文件上传(实例讲解)
Oct 21 #Python
Python3操作SQL Server数据库(实例讲解)
Oct 21 #Python
Python3实现简单可学习的手写体识别(实例讲解)
Oct 21 #Python
python虚拟环境virtualenv的使用教程
Oct 20 #Python
Python环境搭建之OpenCV的步骤方法
Oct 20 #Python
详解如何用OpenCV + Python 实现人脸识别
Oct 20 #Python
python中的计时器timeit的使用方法
Oct 20 #Python
You might like
在IIS7.0下面配置PHP 5.3.2运行环境的方法
2010/04/13 PHP
Php无限级栏目分类读取的实现代码
2014/02/19 PHP
PHP实现下载断点续传的方法
2014/11/12 PHP
php实现将上传word文件转为html的方法
2015/06/03 PHP
PHP读取大文件末尾N行的高效方法推荐
2016/06/03 PHP
jQuery JSON的解析方式分享
2011/04/05 Javascript
实现点击列表弹出列表索引的两种方式
2013/03/08 Javascript
5秒后跳转到另一个页面的js代码
2013/10/12 Javascript
js将字符串转成正则表达式的实现方法
2013/11/13 Javascript
jquery获取tr并更改tr内容示例代码
2014/02/13 Javascript
JS中怎样判断undefined(比较不错的方法)
2014/03/27 Javascript
js实现拉幕效果的广告代码
2015/09/02 Javascript
angularjs表格ng-table使用备忘录
2016/03/09 Javascript
JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)
2016/06/24 Javascript
简单谈谈JS数组中的indexOf方法
2016/10/13 Javascript
使用contextMenu插件实现Bootstrap table弹出右键菜单
2017/02/20 Javascript
JS触摸事件、手势事件详解
2017/05/04 Javascript
AngularJS表单验证功能分析
2017/05/26 Javascript
JavaScript生成简单等差数列
2017/11/28 Javascript
jQuery实现的简单拖拽功能示例【测试可用】
2018/08/14 jQuery
Vuejs监听vuex中值的变化的方法示例
2018/12/02 Javascript
vue中created和mounted的区别浅析
2019/08/13 Javascript
在Django的模型和公用函数中使用惰性翻译对象
2015/07/27 Python
使用Python生成随机密码的示例分享
2016/02/18 Python
对Python中Iterator和Iterable的区别详解
2018/10/18 Python
Python中Numpy ndarray的使用详解
2019/05/24 Python
python requests证书问题解决
2019/09/05 Python
Django-celery-beat动态添加周期性任务实现过程解析
2020/11/26 Python
C语言变量的命名规则都有哪些
2013/12/27 面试题
总经理岗位职责
2013/11/09 职场文书
家长给孩子的评语
2014/01/30 职场文书
社会稳定风险评估方案
2014/06/02 职场文书
pytorch训练神经网络爆内存的解决方案
2021/05/22 Python
JavaScript高级程序设计之基本引用类型
2021/11/17 Javascript
JavaScript实现队列结构过程
2021/12/06 Javascript
bose降噪耳机音能消除人声吗
2022/04/19 数码科技