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


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随机生成一个6位的验证码代码分享
Mar 24 Python
使用Python装饰器在Django框架下去除冗余代码的教程
Apr 16 Python
Python 常用的安装Module方式汇总
May 06 Python
tensorflow 使用flags定义命令行参数的方法
Apr 23 Python
PHP实现发送和接收JSON请求
Jun 07 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
Jul 07 Python
利用python实现简易版的贪吃蛇游戏(面向python小白)
Dec 30 Python
python 子类调用父类的构造函数实例
Mar 12 Python
Python绘图之二维图与三维图详解
Aug 04 Python
详解python datetime模块
Aug 17 Python
pytorch 两个GPU同时训练的解决方案
Jun 01 Python
Python创建SQL数据库流程逐步讲解
Sep 23 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
第一节--面向对象编程
2006/11/16 PHP
PHP动态编译出现Cannot find autoconf的解决方法
2014/11/05 PHP
海量经典的jQuery插件集合
2010/01/12 Javascript
js静态方法与实例方法分析
2011/07/04 Javascript
js移除事件 js绑定事件实例应用
2012/11/28 Javascript
JS图片无缝滚动(简单利于使用)
2013/06/17 Javascript
js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
2013/11/18 Javascript
JavaScript通过正则表达式实现表单验证电话号码
2014/03/07 Javascript
file控件选择上传文件确定后触发的js事件是哪个
2014/03/17 Javascript
js实现checkbox全选和反选示例
2014/05/01 Javascript
Node调试工具JSHint的安装及配置教程
2014/05/27 Javascript
jQuery中的read和JavaScript中的onload函数的区别
2014/08/27 Javascript
js脚本实现数据去重
2014/11/27 Javascript
使用jspdf生成pdf报表
2015/07/03 Javascript
浅析node应用的timing-attack安全漏洞
2018/02/28 Javascript
在vue中读取本地Json文件的方法
2018/09/06 Javascript
Vue 进阶之路(三)
2019/04/18 Javascript
node.js基础知识汇总
2020/08/25 Javascript
Vue select 绑定动态变量的实例讲解
2020/10/22 Javascript
[01:48]2018DOTA2亚洲邀请赛主赛事第二日五佳镜头 VG完美团战逆转TNC
2018/04/05 DOTA
跟老齐学Python之复习if语句
2014/10/02 Python
Python使用Tkinter实现机器人走迷宫
2018/01/22 Python
python单例模式实例解析
2018/08/28 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
2020/04/08 Python
Python3.9 beta2版本发布了,看看这7个新的PEP都是什么
2020/06/10 Python
python中Array和DataFrame相互转换的实例讲解
2021/02/03 Python
解决pytorch 模型复制的一些问题
2021/03/03 Python
使用phonegap检测网络状态的方法
2017/03/30 HTML / CSS
详解Canvas 实现炫丽的粒子运动效果(粒子生成文字)
2018/02/01 HTML / CSS
运动会报道稿300字
2014/10/02 职场文书
2015年销售助理工作总结
2015/05/11 职场文书
导游词之唐山景点
2019/12/18 职场文书
Python requests库参数提交的注意事项总结
2021/03/29 Python
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
2021/04/01 PHP
Python django中如何使用restful框架
2021/06/23 Python
Redis实战之Lettuce的使用技巧详解
2022/12/24 Redis