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


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实现partial改变方法默认参数
Aug 18 Python
讲解Python中运算符使用时的优先级
May 14 Python
Python中isnumeric()方法的使用简介
May 19 Python
python实现按行切分文本文件的方法
Apr 18 Python
python使用RNN实现文本分类
May 24 Python
python爬虫爬取微博评论案例详解
Mar 27 Python
python with (as)语句实例详解
Feb 04 Python
浅析matlab中imadjust函数
Feb 27 Python
使用python执行shell脚本 并动态传参 及subprocess的使用详解
Mar 06 Python
Tensorflow使用Anaconda、pycharm安装记录
Jul 29 Python
python如何利用traceback获取详细的异常信息
Jun 05 Python
Pytorch中Softmax和LogSoftmax的使用详解
Jun 05 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
无线电广播与收音机发展的历史回眸
2021/03/02 无线电
建立文件交换功能的脚本(一)
2006/10/09 PHP
IIS6.0+PHP5.x+MySQL5.x+Zend3.0x+GD+phpMyAdmin2.8x通用安装实例(已经完成)
2006/12/06 PHP
phpQuery占用内存过多的处理方法
2013/11/13 PHP
php获取mysql字段名称和其它信息的例子
2014/04/14 PHP
php通过curl模拟登陆DZ论坛
2015/05/11 PHP
PHP 7的一些引人注目的新特性简单介绍
2015/11/08 PHP
二级域名转向类
2006/11/09 Javascript
JavaScript this调用规则说明
2010/03/08 Javascript
鼠标右击事件代码(asp.net后台)
2011/01/27 Javascript
javascript事件处理模型实例说明
2016/05/31 Javascript
node.js中 stream使用教程
2016/08/28 Javascript
Node.js学习入门
2017/01/03 Javascript
初识 Vue.js 中的 *.Vue文件
2017/11/22 Javascript
基于vue和react的spa进行按需加载的实现方法
2018/09/29 Javascript
微信小程序使用setData修改数组中单个对象的方法分析
2018/12/30 Javascript
Vue+Typescript中在Vue上挂载axios使用时报错问题
2019/08/07 Javascript
vue-property-decorator用法详解
2019/12/12 Javascript
JavaScript cookie原理及使用实例
2020/05/08 Javascript
jquery.validate自定义验证用法实例分析【成功提示与择要提示】
2020/06/06 jQuery
[00:32]2018DOTA2亚洲邀请赛Newbee出场
2018/04/03 DOTA
Python列表切片用法示例
2017/04/19 Python
Django数据库操作的实例(增删改查)
2017/09/04 Python
Appium+Python自动化测试之运行App程序示例
2019/01/23 Python
Python socket模块方法实现详解
2019/11/05 Python
keras中的History对象用法
2020/06/19 Python
laravel使用redis队列实例讲解
2021/03/23 PHP
高校毕业生登记表自我鉴定
2013/11/03 职场文书
幼儿运动会邀请函
2014/01/17 职场文书
仓管岗位职责范本
2014/02/08 职场文书
土建专业大学生自荐信范文
2014/04/09 职场文书
卫校毕业生个人自我鉴定
2014/04/28 职场文书
安全教育月活动总结
2014/05/05 职场文书
民族学专业求职信
2014/07/28 职场文书
研究生论文答辩开场白
2015/05/27 职场文书
初三毕业感言
2015/07/31 职场文书