【Educoder作业】操作系统之文件管理(二) ※

Sorry~拖更这么久,都快到ddl了才发。英语真是太难了

这次主要是几个ososos库里函数的运用,给我搞得有点小晕。
介绍几个概念:绝对路径和相对路径。
绝对路径就是说从根目录开始的路径,以///作为开头;相对路径是相对当前位置的路径,不以///开头。
这里我们讨论的都是相对路径。

第二个事儿,就是两个左斜杠和一个右斜杠效果是一样的,如果不在printprintprint函数里直接打印路径,单个左斜杠也没问题。

T1 文件操作

BtoKMGBtoKMGBtoKMG函数题目里的表述并不清晰,当然测试数据也没要求这个,都是0.0KB0.0KB0.0KB。我个人的理解是,从最大单位开始遍历,如果不小于一个当前单位,就以当前单位表述。举个例子,比如说230B2^{30}B230B就是1.0GB1.0GB1.0GB,如果比这个还要小就要用MBMBMB输出了。
关于printFileInfoprintFileInfoprintFileInfo函数,写好递归即可,文件大小有两种,一种是os.path.getsizeos.path.getsizeos.path.getsize,一种是os.stat.st_size()os.stat.st\_size()os.stat.st_size(),里面放路径即可。

import os
import os.path
# 此函数将容量信息更改为 kb、mb、gb 为单位
def BtoKMG(n):#*********** Begin **********#output = 'KMG'for i in range(3, 0, -1) :# output[i - 1]mdl = pow(2, i * 10)if n >= mdl or i == 1 :return ('%.1f' % (n / mdl)) + ' ' + output[i - 1] + 'B'#*********** End **********#'# 递归函数 获取当前文件夹的文件信息及子文件夹的文件信息
def printFileInfo(baseDir, keyword):#*********** Begin **********#for f in os.listdir(baseDir) :mdl = baseDir + '/' + fif os.path.isdir(mdl) :printFileInfo(mdl, keyword)else :if keyword in f :print(f, BtoKMG(os.path.getsize(mdl)), mdl, sep = ' \t ')# 直接打印结果即可#*********** Begin **********#

T2 文件读写

这个题就没坑了,只需要知道如果用readlinesreadlinesreadlines的话后面有\n,所以要replacereplacereplace一下或者特判。

def find(path, keyword):#*********** Begin **********##打印结果即可txt = open(path, 'r')content = txt.readlines()Sum = 0Lines = len(content)print('“%s”出现在以下位置:' % keyword)for i in range(Lines) :content[i] = content[i].replace('\n', '')if keyword in content[i] :# content[i]print('--第 %d 行: '  % (i + 1)   + content[i])Sum += 1print('共 %d 行' % Sum)#*********** End **********#

【Educoder作业】操作系统之文件管理(二) ※相关推荐

  1. 2007cad多个文件窗口上部排列_【中考信息技术总复习讲义】模块三 操作系统与文件管理...

    模块三 操作系统与文件管理 学习目标 1.了解操作系统的概念.功能和分类,了解操作系统的发展. 2.熟练掌握Windows桌面.窗口.菜单.对话框的组成及常用操作. 3.掌握创建桌面快捷方式的方法和控 ...

  2. 【操作系统】文件管理(三)—— 文件的目录结构

    [操作系统]文件管理(三)-- 文件的目录结构 一.文件控制块(FCB) 二.索引结点(FCB的改进) 三.目录结构 1. 单级目录结构 2. 两级目录结构 3. 多级目录结构(树形目录结构) 4. ...

  3. 天津理工大学《操作系统》实验二,存储器的分配与回收算法实现,代码详解,保姆式注释讲解

    天津理工大学<操作系统>实验二,存储器的分配与回收算法实现,代码详解,保姆式注释讲解 实验内容 1. 本实验是模拟操作系统的主存分配,运用可变分区的存储管理算法设计主存分配和回收程序,并不 ...

  4. 【操作系统】文件管理(四)—— 文件的保护和共享

    [操作系统]文件管理(四)-- 文件的保护和共享 一.文件保护 1. 口令保护 2. 加密保护 3. 访问控制 4. 文件保护的总结 二.文件共享 1. 基于索引结点的共享方式(硬链接) 2. 基于符 ...

  5. 【操作系统】文件管理(七)—— 文件系统的层次结构与基本操作

    [操作系统]文件管理(七)-- 文件系统的层次结构与基本操作 一.文件系统的层次结构 二.文件的基本操作 1. 创建文件 2. 删除文件 3. 打开文件 4. 读文件 5. 写文件 三.文件基本操作总 ...

  6. 【Educoder作业】CC++函数实训

    [Educoder作业]C&C++函数实训 是不是学会了函数就可以做任何题了- T1 登月纸桥 给出了函数的基本定义,可以在主函数上面定义函数,然后在主函数下面写函数.可能会显得可读性强一点? ...

  7. 如何让你的操作系统更安全二

    如何让你的操作系统更安全二 360+NOD32 将流氓病毒一扫光 360安全卫士的简介: 360是一款专门用于对付流氓软件的克星,目前成为装机必备的工具.([url]http://www.360.cn ...

  8. linux默认归档目录,Linux系统管理(第4章:目录和文件管理二)

    Linux系统管理(第4章:目录和文件管理二) 一.练习文件查看及检索操作 1.查看/etc/filesystems文件,确认当前系统支持的文件系统类型 Cat:用于连接多个文件的内容,更多用于查看文 ...

  9. latex 图片大小_用LaTeX写作业——插入图片(二)

    方法 subfigure可以横向排列一组图片,会自动编号abcd.在一个 subfigure内使用minipage插入图片,通过控制图片大小实现换行效果 # 效果 代码 usepackage{sub ...

最新文章

  1. Mybatis常见面试题(转)
  2. python映射类型-什么是python中唯一的映射类型
  3. 在wsl中运行开源项目tinyhttpd遇到的问题
  4. java的时间变化_通过java记录数据持续变化时间代码解析
  5. 快速傅里叶变换_计算物理基础:第八章-快速傅里叶变换(FFT)
  6. C语言试题五十六之计算并输出给定整数n的所有因子(不包括1与自身)之和。规定n的值不大于1000。
  7. Java / JEE中的有效日志记录–映射的诊断上下文
  8. 西南医院微服务咋查得到_#全国最好医院排行榜#发布:成都这4家牛了!四川31个专科排全国前十(总榜)...
  9. Asp.net MVC 4新项目中创建area的后续操作
  10. 云视通存储怎么不是24小时_降压目标不是一次血压正常,而是24小时血压都要正常...
  11. vs2015运行项目时出现“编译器失败,错误代码为 1”的解决方案
  12. Linux 性能分析工具 nmon for Linux
  13. 【Hive】Hive的三种交互方式
  14. 经典C语言编程100例——题目+答案代码(1-10)
  15. u盘efi分区删除方法
  16. 如何用万用表识别三极管的管型和管脚
  17. python连接oracle12c
  18. 迷宫(二) 计蒜客--1596
  19. html div background-image,css3背景background-image
  20. CG中的深度学习 |Siggraph 2017 相关论文总结

热门文章

  1. Ubuntu18.04 安装opencv 3.2.0 ,opencv3.4.15
  2. Ubuntu16.04 tensorflow可视化工具---tensorboard
  3. 贪心算法:860.柠檬水找零
  4. FreeRTOS临界段
  5. matlab 统计数组频数_利用MATLAB进行频率分析(统计数组中元素个数)
  6. Linux阿帕奇配置文件解读
  7. 章昌平:个人知识管理中的“武林外传”
  8. PostgreSQL的学习心得和知识总结(六十三)|详解PostgreSQL数据库 ANY/SOMEALL 的使用及原理
  9. Linux和DOS文件系统的区别,对比Linux文件系统和DOS文件系统
  10. 简单几步让中国菜刀绕过安全狗