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


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求斐波那契数列示例分享
Feb 14 Python
python学习笔记:字典的使用示例详解
Jun 13 Python
在Python的Flask框架下收发电子邮件的教程
Apr 21 Python
在Python中使用__slots__方法的详细教程
Apr 28 Python
Python内置的HTTP协议服务器SimpleHTTPServer使用指南
Mar 30 Python
Python列表推导式与生成器表达式用法示例
Feb 08 Python
使用Scrapy爬取动态数据
Oct 21 Python
python 3.3 下载固定链接文件并保存的方法
Dec 18 Python
如何实现Django Rest framework版本控制
Jul 25 Python
python3+openCV 获取图片中文本区域的最小外接矩形实例
Jun 02 Python
用sleep间隔进行python反爬虫的实例讲解
Nov 30 Python
python的dict判断key是否存在的方法
Dec 09 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
php+ajax实时输入自动搜索匹配的方法
2014/12/26 PHP
Laravel 5 框架入门(三)
2015/04/09 PHP
Zend Framework教程之Zend_Db_Table用法详解
2016/03/21 PHP
Prototype使用指南之selector.js说明
2008/10/26 Javascript
javascript 面向对象编程 function也是类
2009/09/17 Javascript
JQUERY操作JSON实例代码
2010/02/09 Javascript
Jquery ui css framework
2010/06/28 Javascript
手机号码,密码正则验证
2014/09/04 Javascript
javascript获取select值的方法分析
2015/07/02 Javascript
深入理解Node.js的HTTP模块
2016/10/12 Javascript
一文让你彻底搞清楚javascript中的require、import与export
2017/09/24 Javascript
vue+Java后端进行调试时解决跨域问题的方式
2017/10/19 Javascript
vue.js内置组件之keep-alive组件使用
2018/07/10 Javascript
nodejs分离html文件里面的js和css的方法
2019/04/09 NodeJs
生产制造追溯系统之在线打印功能
2019/06/03 Javascript
layer弹出层自定义提交取消按钮的例子
2019/09/10 Javascript
基于jquery ajax的多文件上传进度条过程解析
2019/09/11 jQuery
利用webpack理解CommonJS和ES Modules的差异区别
2020/06/16 Javascript
vue.js 解决v-model让select默认选中不生效的问题
2020/07/28 Javascript
详解vue之自行实现派发与广播(dispatch与broadcast)
2021/01/19 Vue.js
Python中os.path用法分析
2015/01/15 Python
Python_LDA实现方法详解
2017/10/25 Python
python 使用re.search()筛选后 选取部分结果的方法
2018/11/28 Python
python学生管理系统
2019/01/30 Python
对Python3 序列解包详解
2019/02/16 Python
Python数据类型之Tuple元组实例详解
2019/05/08 Python
python之生产者消费者模型实现详解
2019/07/27 Python
python3连接MySQL8.0的两种方式
2020/02/17 Python
HTML5 File API改善网页上传功能
2009/08/19 HTML / CSS
canvas线条的属性详解
2018/03/27 HTML / CSS
澳大利亚网上玩具商店:Mr Toys Toyworld
2018/03/25 全球购物
生产现场工艺工程师岗位职责
2013/11/28 职场文书
基层工作经历证明
2014/01/13 职场文书
国旗下的讲话演讲稿
2014/05/08 职场文书
党的群众路线教育实践活动个人批评与自我批评
2014/10/16 职场文书
详解MySQL 联合查询优化机制
2021/05/10 MySQL