reference website:

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431925324119bac1bc7979664b4fa9843c0e5fcdcf1e000#0

1. 利用os模块编写一个能实现dir -l输出的程序。

 1 from datetime import datetime
 2 import os
 3
 4 pwd = os.path.abspath('.')
 5
 6 print('Size    Last Modified    Name')
 7 print('------------------------------------------------------------')
 8
 9 for f in os.listdir(pwd):
10     fsize = os.path.getsize(f)
11     mtime = datetime.fromtimestamp(os.path.getmtime(f)).strftime('%Y-%m-%d %H:%M')
12     flag = '/' if os.path.isdir(f) else ''
13     print('%10d  %s  %s%s'% (fsize, mtime, f, flag))

2. 编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径。

写了两种方案,第一种用os.walk(path),下标写的很不正规。打印出来的是绝对路径。

第二种方案是遍历。用relpath打印相对路径。

os.path.realpath(path)  #返回path的真实路径
os.path.relpath(path, start)  #从start开始计算相对路
os.path.walk(path, visit, arg)  #遍历path,进入每个目录都调用visit函数,visit函数必须有
3个参数(arg, dirname, names),dirname表示当前目录的目录名,names代表当前目录下的所有
文件名,args则为walk的第三个参数
os.path.split(path)  #把路径分割成dirname和basename,返回一个元组
os.path.join(path1, path2)  #把目录和文件名合成一个路径

 1 def print_path_1(path,file_name):
 2     for i in os.walk(path):
 3         l = len(i[2])
 4         for k in range(l):
 5             if file_name in i[2][k]:
 6                 print(i[0],i[2][k])
 7
 8 def print_path_2(path,file_name):
 9     for i in os.listdir(path):
10         context= os.path.join(path,i)
11         if os.path.isfile(context) and (file_name in i):
12             print(path,i)
13             realpath = os.path.relpath(path,current_path)
14             print(realpath)
15         elif os.path.isdir(context):
16             print_path_2(context,file_name)
17
18 if __name__=='__main__':
19     current_path = os.getcwd()
20     a = [current_path, 'test']
21     print_path_1(*a)
22     print('----------------------------------')
23     print_path_2(*a)

转载于:https://www.cnblogs.com/hopping/p/7647094.html

[python][LXF][homework]操作文件和目录相关推荐

  1. python操作文件和目录_Python操作文件和目录

    Python操作文件和目录 读写文件比较简单,有一点特别注意就好了 windows下Python默认打开的文件以gbk解码,而一般我们的文件是utf-8编码的,所以如果文本含有中文,就会出现异常或者乱 ...

  2. 三十四 操作文件和目录

    如果我们要操作文件.目录,可以在命令行下面输入操作系统提供的各种命令来完成.比如dir.cp等命令. 如果要在Python程序中执行这些目录和文件的操作怎么办?其实操作系统提供的命令只是简单地调用了操 ...

  3. python中os操作文件及文件路径

    python中os操作文件及文件路径实例汇总     1 . python获取文件上一级目录:取文件所在目录的上一级目录 os.path.abspath(os.path.join(os.path.di ...

  4. python中flush怎么用,在Python程序中操作文件之flush()方法的使用教程

    在Python程序中操作文件之flush()方法的使用教程 flush()方法刷新内部缓冲区,像标准输入输出的fflush.这类似文件的对象,无操作. Python关闭时自动刷新文件.但是可能要关闭任 ...

  5. python没有那个文件或目录_fatal error: Python.h: 没有那个文件或目录 解决方法

    今天安装scrapy 先说下环境 Ubuntu16.04 系统默认Python 2.7.12 (default, Nov 19 2016, 06:48:10) ,安装过anaconda(很关键,里面有 ...

  6. 原版英文书籍《Linux命令行》阅读记录4 | 操作文件和目录

    背景: 阅读英文原作只为了更好地理解书中的精髓,当然也是为了更好地掌握书中的技巧.我们会坚持阅读全书,并记录书中的精髓. 从本章节开始,开始真正的实战. 主要学习以下命令: cp mv mkdir r ...

  7. Deepin下安装scrapy报错fatal error: Python.h: 没有那个文件或目录

    Deepin下安装scrapy报错(亲测有效!) 问题描述 在deepin操作系统上,使用python3.6,通过sudo pip3 install scrapy安装时候,出现以下错误: src/tw ...

  8. PHP操作文件和目录

    PHP操作文件和目录 一.目录处理 1.1 目录信息查询 1.2 目录操作 二.文件处理 2.1 查询文件信息 2.2 文件操作 2.3 文件的上传 1. 文件上传配置 2. 单文件上传表单 3. 多 ...

  9. 【python进阶】_文件和目录操作

    创建目录 os.makedirs 可以递归的创建目录结构,比如 import os os.makedirs('tmp/python/fileop',exist_ok=True) 会在当前工作目录下面创 ...

最新文章

  1. 数组中只出现一次的数字
  2. arp 不同网段 相同vlan_H3C交换机配置VLAN
  3. 2017年度盘点:15个最流行的GitHub机器学习项目 By 机器之心2017年12月21日 15:23 在本文中,作者列出了 2017 年 GitHub 平台上最为热门的知识库,囊括了数据科学、机
  4. 海量存储之十八–一致性和高可用专题
  5. 【51Nod - 1163】最高的奖励 (贪心+优先队列 或 妙用并查集)
  6. 2022零售行业消费趋势新主张
  7. netmiko可以连接的设备有哪些_气体报警器可以联动哪些设备
  8. oracle sql中查询语句where中字段不为空用if怎么写_MyBatis手把手跟我做系列(三) --- 动态SQL标签...
  9. 阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第2节 反射_6_反射_获取字节码Class对象的三种方式...
  10. 实验三.局域网的组建
  11. Ubuntu 16.04 单显卡安装Nvidia驱动+GTX750显卡安装CUDA 9.1+cuDNN 7.1.3
  12. python文件重命名加日期_Python文件创建日期和Critiqu的重命名请求
  13. 计算机毕业设计基于ssm乒乓球裁判管理系统
  14. 基于JSP微信小程序汽车票订票售票系统设计与实现
  15. Latex论文排版——图片
  16. Aura component cache clear set
  17. 简单理解钽电容和电解电容的区别
  18. 互联网征信中的信用评分模型(转)
  19. ADDS:启用 Advanced Offline Files
  20. E+H雷达液位计做干扰抑制曲线(mapping)方法

热门文章

  1. Google Earth Engine(GEE)分析多个地区的植被覆盖趋势
  2. 计算机释放磁盘空间常用方法,释放硬盘空间的常用方法 【计算机与医学】
  3. 150ms流畅体验 NBA2KOnline如何网络同步优化
  4. 电子邮件管理系统 android,IM800电子邮件管理系统
  5. 如何在 Linux 系统中判断安装、使用了多少内存 | Linux 中国
  6. 精品软件 推荐 QQ 电脑管家
  7. 高仿QQ电脑管家8 界面
  8. 通信中的信道均衡介绍
  9. matlab提取网络层输出,matlab神经网络工具箱的net数据提取
  10. 30天提升技术人的写作力-第九天