今天安装Win10系统的时候,不小心删除了分区信息文件夹,导致分区信息丢失,直接识系统别不了分区,提示需要格式化。

当时的内心是一万只CNM奔腾而过,能不能不要这么逗人。然后脑子一热,说格式化就格式化吧,反正资料又不是非常重要,然后手一抖,就点了格式化了。格式化之后,才想起来,这个分区里面,不仅仅存有我个人的资料,
还存有别人的资料,我自己的资料丢失么,就丢失了,但是别人的资料需要找回来啊。
然后打开N多年不怎么用的移动硬盘,找到恢复数据的软件,对数据进行恢复。当然吃瓜群众们肯定会问,为什么不直接在网络上下了,网上大部分能下载的数据恢复软件都是要钱的,并且金额还不低,或者就是需要安装软件的,然后这些软件
都是被别人植入了后门的。

或者就是提示需要注册码,然后需要在淘宝上购买激活码的,总之套路很多,但是我们又急着恢复,哪有这么多的时间来进行这些折腾呢。
好了,废话不多说,直接进入正题。
1.打开绿色版的数据恢复软件。

点击误格式化硬盘,进行数据恢复。

分区数据正在扫描中,等待一会。
我们会看到,好多文件及文件夹


选择我们想要进行恢复的文件夹,进行数据恢复。

数据正在恢复中。
数据恢复之后,我们会看到很多无用的文件和文件夹,这个时候,怎么办呢?

在进行数据恢复的时候。我们都会怕数据丢失,不完整,这个时候,怎么办呢?我们一般都是对搜索到的文件和文件夹都进行恢复,

然后就会恢复出来很多无用的文件和文件夹,我自己恢复的差不多就有9W多个文件夹,然后从这9W个文件夹之后,去找我们想要的数据
那无异于大海捞针。
这个时候怎么办呢?当然是让计算机来进行操作了啊,速度又快,又准确。但是使用计算机来进行数据搜索的话,需要编写专门的应用程序,使用C/C++、Java来编写的话
太浪费时间了,怎么办呢?当然是使用Python了啊,人生苦短,我用Python。
好了,废话就不多说了,撸起袖子,直接开干吧。
import os,sys
import shutil
def get_file_type(file):
filetype = file.split(".")
#print(filetype)
if(len(filetype) > 0):
print("文件类型:%s " % filetype[-1])
else:
print("无法识别的文件类型")
return filetype
def del_file_judge(dir):
dir_content = [x for x in os.listdir(dir) if x != dir]
size = 0
for f in dir_content:
#print(f)
fn = os.path.join(dir, f)
size = os.path.getsize(fn)
get_file_type(f)
if (size > 10240000):
print("文件名:%s 文件大小: %d" % (f,size))
return False
elif (f.lower().find(".ai") > -1):
print("找到AI文件:%s \r\n" % f)
return False
elif (f.lower().find(".psd")> -1):
print("找到photoshop文件:%s \r\n" % f)
return False
# elif (f.lower().find(".otf")> -1):
# print("找到字体文件文件:%s \r\n" % f)
# return False
# elif (f.lower().find(".ttf")> -1):
# print("找到字体文件文件:%s \r\n" % f)
# return False
# elif (f.find(".jpg")> -1):
# print("找到图片文件:%s \r\n" % f)
# return False
# elif (f.lower().find(".png")> -1):
# print("找到图片文件:%s \r\n" % f)
# return False
# elif (f.lower().find(".c")> -1):
# print("找到C语言文件:%s \r\n" % f)
# return False
# elif (f.lower().find(".h")> -1):
# print("找到C语言文件:%s \r\n" % f)
# return False
elif (f.lower().find(".pdf")> -1):
print("找到PDF文件:%s \r\n" % f)
return False
elif (f.lower().find(".doc")> -1):
print("找到Doc文件:%s \r\n" % f)
return False
elif (f.lower().find(".xls")> -1):
print("找到Xls文件:%s \r\n" % f)
return False
# elif (f.lower().find(".txt")> -1):
# print("找到Xls文件:%s \r\n" % f)
# return False
elif (f.lower().find(".pcb")> -1):
print("找到电路设计相关文件:%s \r\n" % f)
return False
elif (f.lower().find(".mp4")> -1):
print("找到MP4文件:%s \r\n" % f)
return False
elif (f.lower().find(".flv")> -1):
print("找到FLV文件:%s \r\n" % f)
return False
elif (f.lower().find(".wmv")> -1):
print("找到WMV文件:%s \r\n" % f)
return False
elif (f.lower().find(".7z")> -1):
print("找到压缩包文件:%s \r\n" % f)
return False
elif (f.lower().find(".zip")> -1):
print("找到压缩包文件:%s \r\n" % f)
if size < 1024000:
print("文件太小,不是需要的文件:%s, %d" % (fn, size))
return True
return False
elif (f.lower().find(".rar")> -1):
print("找到压缩包文件:%s \r\n" % f)
return False
elif (f.lower().find(".iso")> -1):
print("找到光盘文件:%s \r\n" % f)
return False
elif os.path.isdir(fn):
print("找到文件夹:%s \r\n" % fn)
return False
else:
print("将会删除文件夹:%s \r\n" % dir)
return True
def del_nouseful_file(path):
del_flag = False
dir_content = [x for x in os.listdir(path) if x != path]
for item in dir_content:
dir = os.path.join(path, item)
try:
print("正在分析文件夹: %s \r\n" % dir)
del_flag = del_file_judge(dir)
print("删除标志:%d " % del_flag)
if del_flag:
#os.rmdir(dir) #os.rmdir() 方法用于删除指定路径的目录。仅当这文件夹是空的才可以, 否则, 抛出OSError。
print("正在删除文件夹: %s \r\n" % dir)
shutil.rmtree(dir) #删除文件python夹库
else:
print("文件夹:%s 将会保存 \r\n" % dir)
print(dir)
except Exception as e:
print(‘Exception‘,e)
def del_emp_dir(path):
for (root, dirs, files) in os.walk(path):
for item in dirs:
dir = os.path.join(root, item)
try:
if (len(files) == 0) or (not os.path.isdir(dir)) :
os.rmdir(dir) #os.rmdir() 方法用于删除指定路径的目录。仅当这文件夹是空的才可以, 否则, 抛出OSError。
print(dir)
except Exception as e:
print(‘Exception ‘ , e)
print("\r\n")
if __name__ == ‘__main__‘:
dir = r‘H:\KDR\\‘ #D:\KDR
del_emp_dir(dir)
del_nouseful_file(dir)

如果你也遇到这种情况,需要进行数据清洗和整理的话,也可以使用这个程序。
这个程序会自动删除空文件夹,以及一些无用的文件夹。
Python 运行环境: 建议使用Python3,因为python2不支持中文,如果想要使用Python2的话,请将中文改为英文名称,就能正常运行了。
运行命令如下:

好了,不懂的,需要咨询的,可以加QQ群:

当然了,也可以加我的QQ:

原文:https://www.cnblogs.com/kmust/p/11740936.html