意外格式化分区数据如何恢复及如何进行数据清洗?

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

 

 

   当时的内心是一万只CNM奔腾而过,能不能不要这么逗人。然后脑子一热,说格式化就格式化吧,反正资料又不是非常重要,然后手一抖,就点了格式化了。格式化之后,才想起来,这个分区里面,不仅仅存有我个人的资料,

还存有别人的资料,我自己的资料丢失么,就丢失了,但是别人的资料需要找回来啊。

 

  然后打开N多年不怎么用的移动硬盘,找到恢复数据的软件,对数据进行恢复。当然吃瓜群众们肯定会问,为什么不直接在网络上下了,网上大部分能下载的数据恢复软件都是要钱的,并且金额还不低,或者就是需要安装软件的,然后这些软件

都是被别人植入了后门的。

 

 

 或者就是提示需要注册码,然后需要在淘宝上购买激活码的,总之套路很多,但是我们又急着恢复,哪有这么多的时间来进行这些折腾呢。

 

好了,废话不多说,直接进入正题。

 

1.打开绿色版的数据恢复软件。

 

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

 

 分区数据正在扫描中,等待一会。

 我们会看到,好多文件及文件夹

 

 

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

 

 数据正在恢复中。

 

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

 

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

 

 

然后就会恢复出来很多无用的文件和文件夹,我自己恢复的差不多就有9W多个文件夹,然后从这9W个文件夹之后,去找我们想要的数据

那无异于大海捞针。

 

这个时候怎么办呢?当然是让计算机来进行操作了啊,速度又快,又准确。但是使用计算机来进行数据搜索的话,需要编写专门的应用程序,使用C/C++、Java来编写的话

太浪费时间了,怎么办呢?当然是使用Python了啊,人生苦短,我用Python。

 

好了,废话就不多说了,撸起袖子,直接开干吧。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
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:

 

posted @   badwell  阅读(791)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示