Python利用队列广度遍历、复制文件
2018-01-09 20:07
429 查看
""" 广度遍历目录、复制文件 """ import os import collections """ @para1 sourcePath原文件目录 @para1 targetPath目标文件目录 """ def getDirAndCopyFile(sourcePath,targetPath): if not os.path.exists(sourcePath): return if not os.path.exists(targetPath): os.makedirs(targetPath) tempTar = targetPath #创建一个队列来存放路径 queuePath = collections.deque() #创建一个队列用来存放目标路径 queueTarPath = collections.deque() #将路径存进队列 queuePath.append(sourcePath) #将目标文件路径存进队列 queueTarPath.append(targetPath) while True: #如果原文件路径队列为空,则跳出循环 if len(queuePath)==0: break #从原文件路径队列中向左取出路径 path = queuePath.popleft() #从目标路径队列中向左取出路径 tarpath=queueTarPath.popleft() #遍历出path for fileName in os.listdir(path): #拼接路径 absPath = os.path.join(path,fileName) absTar = os.path.join(tarpath,fileName) # 判断是否是文件,是就进行复制 if os.path.isfile(absPath): rbf = open(absPath, 'rb') wbf = open(absTar, 'wb') while True: content = rbf.readline(1024 * 1024 * 5) if len(content) == 0: break wbf.write(content) wbf.flush() rbf.close() wbf.close() #如果是路径,则存进队列 if os.path.isdir(absPath): if os.path.exists(absTar): os.rmdir(absTar) os.mkdir(absTar) queueTarPath.append(absTar) queuePath.append(absPath) if __name__ == '__main__': sourcePath = r"原文件路径" targetPath = r"目标文件路径" getDirAndCopyFile(sourcePath,targetPath)
相关文章推荐
- 03-python文件(文件夹复制练习)------使用递归遍历,广度遍历(队列),深度遍历(栈)
- 容易理解的python用队列实现广度优先遍历文件
- Python利用列表深度遍历目录、复制文件
- python 学习记录(11)-文件处理/读取文件/文件写入内容/文件删除/文件复制/文件重命名/后缀名/内容查找与替换/文件比较/ 配置文件访问/目录创建与删除/遍历目录/定向输出
- leetcode_107. Binary Tree Level Order Traversal II 二叉树层次遍历,利用python的list特性实现队列功能
- 利用python复制文件,或目录
- python 遍历目录,复制指定文件
- 利用消息队列实现两个进程之间的文件复制
- python深度遍历文件夹、获取文件类型、复制文件
- python 用栈和队列实现二叉树的深度优先遍历(三种)和广度优先遍历
- python利用shutil模块对文件剪贴复制等
- Python利用递归实现文件的复制
- Python利用递归和walk()遍历目录文件的方法示例
- Python 用队列,广度遍历文件夹
- 利用python复制文件,或目录
- Python利用递归实现文件的复制方法
- 利用队列循环文件夹下的文件
- 【Python】遍历文件夹,得到所有文件
- 利用python监控文件被修改
- C++ 利用文件流复制文件