近期,由于业务需要,需要培养几个同事来做数据恢复工具开发。经过多方考虑,最终选择Python语言,一是库多,二学习难度低。本人也是第一次接触Python,和同事一起学习,把学习过程记录,共同分享。

所需Python内容

Python3 环境搭建
Python3 基础语法
Python3 基本数据类型
Python3 解释器
Python3 注释
Python3 运算符
Python3 数字(Number)
Python3 字符串
Python3 列表
Python3 条件控制
Python3 循环语句
Python3 迭代器与生成器

RAID0 示意图

数据被分成固定大小的块,本例使用64kb(128扇区)

按顺序写入到N块盘中。

  RAID0示意图
  DISK0 DISK1 DISK2 DISK3
block0 0 1 2 3
block1 4 5 6 7
block2 8 9 10 11
block3 12 13 14 15
block4 16 17 18 19
block5 20 21 22 23
block6 24 25 26 27

RAID0 数据重组工具源码

重组算法:

依次读取块大小(64k)的数据到缓存,然后顺序写到输出文件。

#  RAID0 重组工具源码
import os
print("磁盘阵列重组工具")
# 磁盘数量
diskcnt = input("输入磁盘数量:")
# 文件对象列表
disks = []
# RAID 0 块大小 128 扇区,每次读一个块
bufsize = 512 * 128
# 文件大小
maxsize = 0
# 磁盘读缓存列表
buflist=[]
#  打开文件
for disknum in range(0,int(diskcnt)):while True:tip = ("输入%d号磁盘路径:") % disknumdiskpath = input(tip)if(os.path.exists(diskpath)):try:disk = open(diskpath, 'rb')except IOError:print('Error:没有找到 文件或打开文件失败')continuedisks.append(disk)disksize = os.path.getsize(diskpath)if(disksize > maxsize):maxsize = disksizebreak;else:print("输入错误,重新输入")
while(True):outpath = input("输出文件路径:")try:outfile = open(outpath,'wb')except IOError:print('Error:没有找到 文件或读取文件失败')continueelse:break
# 循环读取文件
# 此处使用缓存,今后可用配置文件控制读写
for block in range(0,maxsize//bufsize):# 清除缓存列表buflist.clear()#读取放到缓存for disk in disks:bufread = disk.read(bufsize)buflist.append(bufread)#缓存写入文件for i in range(0,len(buflist)):k = (disknum-block)outfile.write(buflist[i])
print("完成")

学习Python开发数据恢复工具(1)相关推荐

  1. 零基础学python需要多久-零基础学习Python开发需要多长时间?

    原标题:零基础学习Python开发需要多长时间? Python开发技术目前可谓是互联网行业编程界的新宠,不少零基础想要进入IT行业的人员都纷纷加入学习Python开发.零基础学习Python开发技术需 ...

  2. 自学python需要多长时间-零基础学习Python开发需要多长时间?

    原标题:零基础学习Python开发需要多长时间? Python开发技术目前可谓是互联网行业编程界的新宠,不少零基础想要进入IT行业的人员都纷纷加入学习Python开发.零基础学习Python开发技术需 ...

  3. python零基础实例-零基础学习Python开发练习100题实例(1)

    零基础学习Python开发练习100题实例(1) 2018-02-25 09:37:59 2864浏览 1.题目:有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序 ...

  4. python语言学了有用吗-转行学习Python开发有什么优势

    原标题:转行学习Python开发有什么优势 编程语言那么多,哪一个适合新手学习呢?哪些语言学完后好就业?其实对于这样的问题,一个简单的判断方法就是看市场需求什么,比如现在火热的人工智能行业,人工智能行 ...

  5. 0基础学python要多久-零基础学习Python开发需要多长时间?

    原标题:零基础学习Python开发需要多长时间? Python开发技术目前可谓是互联网行业编程界的新宠,不少零基础想要进入IT行业的人员都纷纷加入学习Python开发.零基础学习Python开发技术需 ...

  6. python入门经典100题-零基础学习Python开发练习100题实例(1)

    零基础学习Python开发练习100题实例(1) 2018-02-25 09:37:59 2854浏览 1.题目:有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序 ...

  7. 前端开发需要学python吗_在选择学习Python开发还是前端开发时需要考虑哪些因素...

    首先,从技术体系结构来看,Python开发与前端开发是两个不同的学习方向,未来所从事的岗位和面对的任务场景也有较为明显的不同,但是Python开发与前端开发本身的发展前景都是比较不错的,未来的就业空间 ...

  8. 学习Python开发培训有用吗

    学习Python开发培训有用吗?这是目前很多人都比较关注的一个问题,Python语言在最近几年是广受IT互联网行业关注的, 下面我们就针对这问题来详细的分析一下. 学习Python开发培训有用吗?Py ...

  9. python基础代码事例-零基础学习Python开发练习100题实例(2)

    零基础学习Python开发练习100题实例(2) 2018-02-26 13:11:39 1934浏览 11.题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个 ...

最新文章

  1. xBIM 实战01 在浏览器中加载IFC模型文件
  2. ASP.NET Web API 过滤器创建、执行过程(二)
  3. 计算机网络---物理层
  4. pytorch 指定卡1_在pytorch中指定显卡
  5. 【操作系统】连续内存分配策略
  6. microservices kubernetes
  7. java与安卓接口_Android-Java-接口Interface
  8. Spring Cloud Eureka 最简入门示例
  9. 看到抖音上 Python 工程师晒的工资条,我沉默了.....
  10. 在linux用sfdisk和parted 来 进行分区
  11. mysql 线上修改参数_9.10、mysql进程、状态在线修改参数重要知识
  12. 进击的UI-----------------UITableView(表视图)
  13. 【Gym - 101350M Make Cents?】 STL - map
  14. 《NVMe-over-Fabrics-1_0a-2018.07.23-Ratified》阅读笔记(4)-- Controller Architecture
  15. 微信视频号直播功能上线;全面打通视频号+公众号+小商店+直播私域生态组合;丨国仁网络资讯
  16. 写数据分析报告,建议部分憋到脸红,咋整?
  17. Linux也有全功能杀毒软件啦!
  18. 20# Vowel Count数元音-字典
  19. xlrd是python自带的库_xlrd库报错
  20. Schlumberger.PIPESIM.2017.1.932.Win64 1DVD

热门文章

  1. 12 个强大的现代 CSS 技术
  2. lightroom使用小结七 调整作品 渐变滤镜局部调整色彩
  3. APP运营三大过程:实战大师让你少走弯路!
  4. 使用Python将数据从一个文件复制到另一个文件
  5. android 7.0 官方网址,android x86 7.0 iso下载官方最新版
  6. linux模块移植到freertos,opus移植到freertos系统
  7. 全系列集成隔离电源的隔离器芯片
  8. 准大四学生七月青软实训总结
  9. 测试磁盘读取速度程序
  10. 字节Java高工面试:java时间戳是毫秒还是秒