因个人需要,写了一个可以递归找到多级文件夹中所有pdf的小程序,发布出来供有需要的人参考或使用。
主要的代码逻辑就是这样的,后来我又做了一个ui界面。
import os
import re
import shutil
from os.path import isdir listnum = 0 #计数器
def get_items(path, direct_file, level=0,subindex=''):
'''
:param path: 文件路径,输入要处理的文件夹
:param direct_file: 用于把找到的文件存起来的路径
:param level: 递归层级
:param subindex: 序号
:return: 该文件自己的编号
'''
global listnum
dirs = os.listdir(path) #获取所有的子文件夹和子文件
subpath = [os.path.join(path, dir) for dir in dirs] #得到所有的地址
if level==0 and os.path.exists(direct_file):#把我们要搜索的目录中去掉用来存放目标文件的文件夹
subpath.remove(os.path.abspath(direct_file)) for index,each_item in enumerate(subpath):
if isdir(each_item):#是文件夹就继续调用原函数迭代
get_items(each_item,direct_file=direct_file, level=level+1,subindex = subindex+str(index)+'.') else:
basename = os.path.basename(each_item)#文件的名字
if re.match(r'^\w+(\.pdf)$',basename) is not None:
# 匹配以 .pdf结尾的所有文件
newname = str(listnum)+'_'+basename
# newname = basename
# 重命名可以重写
direct_file_name = os.path.join(direct_file,newname)
if not os.path.exists(direct_file_name):
print('正在复制%s到%s文件夹中.....'%(basename,direct_file))
shutil.copyfile(each_item,direct_file_name)
else:
print('%s已存在,已经跳过...'% newname)
pass
listnum+=1 if __name__ == '__main__':
'''
'''
path = os.getcwd()
direct_file = './课件/'
if not os.path.exists(direct_file):
os.mkdir(direct_file)
get_items(path, direct_file)

												

最新文章

  1. Building a RESTful Web Service
  2. 提取hdfs文件名的方法
  3. 用gameMaker做个小游戏
  4. <dependency>spring-webmvc</dependency>
  5. Java敏捷数据库迁移框架——Flyway
  6. C语言知识整理(2):volatile与register
  7. Objective-c——UI基础开发第七天(自定义UITableView)
  8. platform设备驱动全透析
  9. Xcode 合并分支报错
  10. vm安装不上vmtools
  11. phpcms自定义分页
  12. UBER司机奖励政策
  13. jenkins持续集成简介[一]
  14. FPGA笔试必会知识点1--数字电路基本知识
  15. 图解JAVA参数传递
  16. eclipse解决js提示
  17. Java正则表达式API详解
  18. linux4.10.8 内核移植(三)---裁剪内核
  19. Python 函数装饰器
  20. :观察者模式--Weather

热门文章

  1. css修改overflow滚动条默认样式
  2. 2019年Java并发精选面试题,哪些你还不会?(含答案和思维导图)
  3. Docker图形化工具Portainer详解
  4. Git很麻烦?只要掌握这几个命令,轻松将代码提交远程仓库
  5. ORACLE数据库中执行计划出现INTERNAL_FUNCTION一定是隐式转换吗?
  6. npm 镜像配置
  7. Appium(六):元素定位
  8. Path Manipulation 路径操作
  9. 高阶函数 - Higher Order Function
  10. Nginx的安装及配置