设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生
打印 上一主题 下一主题

【每日一坑 4】 查找文件

[复制链接]

3

主题

1

好友

111

积分

注册会员

Rank: 2

楼主
发表于 2021-2-11 18:02:02 |显示全部楼层
搞了老半天,程序还是不太理想

老师能看看吗?希望有个评价或者建议,谢谢啦

程序对于文件夹嵌套比较少的勉强还行,多的就会出错

还是去好好学学评论里的那些函数吧!
  1. import os
  2. import fnmatch

  3. result = []

  4. print('输入指定文件夹的路径')
  5. print('(like this: C:\\Users\\Python37)')
  6. path_input = input('路径:')
  7. path_use = '\\\\'.join(path_input.split('\\'))

  8. jias = ['']
  9. ls_jias = []
  10. ls_path_use = path_use

  11. active = False
  12. while active == False:         
  13.     for b in range(len(jias)):
  14.         ls_jias = []
  15.         path_use += '\\\\'+jias[b]
  16.         for c in os.listdir(path_use):
  17.             if fnmatch.fnmatch(c,'*.txt'):
  18.                 result.append(c)
  19.             elif fnmatch.fnmatch(c,'*.*') == False:
  20.                 ls_jias.append(c)
  21.         if len(ls_jias) == 0:
  22.             path_use = ls_path_use
  23.         elif len (ls_jias) > 0:
  24.             ls_path_use = path_use
  25.     jias = ls_jias
  26.     # print(jias)
  27.     if len(jias) == 0:  #就表示里面不再含有文件夹
  28.         active = True
  29. print(result)
复制代码
回复

使用道具 举报

3

主题

1

好友

111

积分

注册会员

Rank: 2

沙发
发表于 2021-2-12 21:54:17 |显示全部楼层
好好学了一些函数,现在彳亍啦!
  1. import os
  2. import fnmatch

  3. #files为该文件夹内的所有文件
  4. #fnmatch.fnmatch()得到布尔表达式
  5. dizhi = r'C:\Users\practice'
  6. result = []
  7. for root,dirs,files in os.walk(dizhi):
  8.     for file in files:
  9.         if fnmatch.fnmatch(file,'*.txt'):
  10.             result.append(file)
  11. print(result)
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-4 01:28 , Processed in 0.016024 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部