- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
华南理工大学操作系统课程实验报告实验概述【实验目的及要求】??加深对linux文件系统的理解。实现一个“difftree”命令,其功能是比较两个目录下的文件结构和文件信息。当在命令行方式下执行“difftree?dir1?dir2”命令时,能够比较目录dir1和?目录dir2是否具有相同的结构,对相同的部分,进一步比较相同文件名的文件内容。列出比较的文件系统结构图。本实验是对单个文件比较的扩展,设计中需要考虑目录操作。【实验原理】 参照linux系统下的diff命令,实现实验要求的“difftree”命令,使用python来写.【实验环境】?硬件环境:宏碁笔记本电脑,i5系列,型号为Aspire E1 -471G软件环境:Ubuntu14.04麒麟版操作系统?实验内容【实验方案设计】?实验源代码:#!/usr/bin/env python#encoding=utf-8from __future__ import print_functionimport osimport os.pathimport sysimport commandsdef Usage(): print(Usage : {0} dir1 dir2.format(sys.argv[0]))def diffDir(dir1, dir2): files = [ os.listdir(dir1), #使用os.listdir()函数来获得目录中的相关内容 os.listdir(dir2), ] sameFileHierarchy = [] #用来保存层级结构 filesCompareOutput = [] #用来保存文件diff结果 for name in files[0]: if name in files[1]: #在两个文件夹下都有相同名字的文件 subname = [ os.path.join(dir1, name), os.path.join(dir2, name), ] if ( os.path.isdir(subname[0]) and os.path.isdir(subname[1]) ): # 同名文件是文件夹 #print(Comparing `{0}` 和 `{1}`.format(subname[0], subname[1])) # 递归调用 diffDir 找出两个子文件夹的层级结构 subFileHierarchy, subCompareOutput = diffDir(subname[0], subname[1]) # 合并结果 filesCompareOutput += subCompareOutput sameFileHierarchy.append(({0}.format(name), subFileHierarchy)) elif ( os.path.isfile(subname[0]) and os.path.isfile(subname[1]) ): # 同名文件是文件夹 output = commands.getoutput(diff {0} {1}.format(subname[0], subname[1])) filesCompareOutput.append( {0}\n对比:\n `{1}` 和 `{2}`\n{0}\n{3}\n.format( *20, subname[0], subname[1], output )) sameFileHierarchy.append(name) return sameFileHierarchy, filesCompareOutputdef PrintHierarchy(hierarchy, level=0): 打印文件层级结构 if len(hierarchy) == 0: print( *(level+1)*3 + No same file!) return for item in hierarchy: if isinstance(item, tuple): print( *level*3 + + item[0] + /) PrintHierarchy(item[1], level+1) else: print( *level*3 + + item)if __name__ == __main__: if len(sys.argv) != 3: Usage() exit(1) hierarchy, filesCompareOutput = diffDir(sys.argv[1], sys.argv[2]) print({0}\n比较文件结构:\n{0}.format( *10)) PrintHierarchy(hierarchy)
您可能关注的文档
- 编码原理精品课件(史治平)编码原理L4-SZP.pdf
- 薄膜物理与技术精品课件(史鹏)CH5-2 石墨烯研究报告.ppt
- 薄膜物理与技术精品课件(史鹏)CH5-1 MEMS.ppt
- 编码原理精品课件(史治平)编码原理L5-SZP.pdf
- 编码原理精品课件(史治平)编码原理L6-SZP.pdf
- 编译原理精品教学课件(华南理工大学)第八章静态语义分析和中间代码生成-4.ppt
- 编译原理精品教学课件(华南理工大学)第六章LR分析法.ppt
- 编译原理精品教学课件(华南理工大学)第七章语法制导的语义计算-3.ppt
- 编译原理精品教学课件(华南理工大学)第三章词法分析.pptx
- 编译原理精品教学课件(华南理工大学)第四章自顶向下语法分析方法.ppt
最近下载
- 2025年纺织服装行业分析报告及未来五至十年行业发展报告.docx
- 2023年晋中信息学院计算机科学与技术专业《数据结构与算法》科目期末试卷B(有答案).docx VIP
- 计算机病毒说课稿.ppt
- 浙江省高中物理学业水平合格性考试知识点归纳总编.pdf
- 《政府预算》课程习题.pdf VIP
- C语言程序设计(2023年春季)学习通章节答案期末考试题库2023年.pdf
- 《汽车电气设备构造与维修》项目7辅助电气系统维护与检修.pptx
- 2025年中考物理总复习 专题二 作图题(含答案).docx VIP
- 4-12 论文 基于EET仿真系统的PLC电梯控制程序设计(1).doc VIP
- 《超重和失重》课件.pptx VIP
文档评论(0)