天天看点

windows下用python将某目录下的所有文件(包括子目录下文件,但不包括目录)复制到指定位置(即提取某目录下所有非目录文件)问题背景问题思考解决问题最后心得

文章目录

  • 问题背景
  • 问题思考
  • 解决问题
  • 最后心得

问题背景

最近在学习爬虫时参考了大佬们的代码进行学习,自己依葫芦画瓢运行测试代码时发现爬取一个网站的所有图片后,涉及到windows下的创建目录、存放路径以及几个常用的库的操作等问题,决定先实现必要的windows下文件操作后学习一下python的os库的用法。

这次的需求是自己在整理文档的时候发现各种文件夹里面放的东西比较凌乱,准备把所有的文件提取到一个文件夹中按自己想要的code进行归类整理

问题思考

这个时候,作为一个不甘心做码农的准程序猿

就要通过动手编程来解决生活实际问题,毕竟一个一个文件用鼠标拖这种操作 在文件目录树比较枝繁叶茂的情况下就有点不太聪明的亚子了

解决问题

既然是解决未知规模的文件移动问题,肯定首选的就是递归了,简单好写又好用,话不多说直接上代码

import os
import shutil

def CreateDir(path):
    isExists=os.path.exists(path)
    # 判断结果
    if not isExists:
        # 如果不存在则创建目录
        os.makedirs(path) 
        print(path+' 目录创建成功')
    else:
        # 如果目录存在则不创建,并提示目录已存在
        print(path+' 目录已存在')


def CopyFile(filepath, newPath):
    # 获取当前路径下的文件名,返回List
    fileNames = os.listdir(filepath) 
    for file in fileNames:
        # 将文件名加入到当前文件路径后面
        newDir = filepath + '/' + file 
        # 如果是文件
        if os.path.isfile(newDir):  
            print(newDir)
            newFile = newPath + file
            shutil.copyfile(newDir, newFile)
        #如果不是文件,递归这个文件夹的路径            
        else:
            CopyFile(newDir,newPath)                

if __name__ == "__main__":
	# 指定要提取文件的目录路径
    path = 'D:/desk/test'
    # 指定目标文件夹路径
    mkPath = "D:/desk/forwardtest/"
    CreateDir(mkPath)
    CopyFile(path,mkPath)
           

最后心得

这次的代码是关于一个自己平常用到的小功能而已,代码并非是完全靠自己原创(毕竟我要是会os就不用学了,这个递归代码相当简单,看了几篇文章直接就能打下来了)遇到问题总是要想办法用学到的东西去解决,才称得上是学以致用嘛

编程能力光靠学习还是不行,在生活中遇到的想法都要一一尝试用所学的东西去实现一下,就算用不到也能有很大的提升,而且自己的需求自己解决(别误会没那啥意思),这个学习过程和学书本、刷题库那种痛并快乐着的经历比起来,自己就投入进去了,可以说是全程快乐完成。。。。。总感觉有些不对头算了不说了

欢迎关注和评论,在下非常愿意多结交朋友一起探讨和学习编程知识

最后整几张自己最近搜罗的高清壁纸图

你猜是不是爬虫爬下来的呢?

windows下用python将某目录下的所有文件(包括子目录下文件,但不包括目录)复制到指定位置(即提取某目录下所有非目录文件)问题背景问题思考解决问题最后心得

在这里插入图片描述

windows下用python将某目录下的所有文件(包括子目录下文件,但不包括目录)复制到指定位置(即提取某目录下所有非目录文件)问题背景问题思考解决问题最后心得
windows下用python将某目录下的所有文件(包括子目录下文件,但不包括目录)复制到指定位置(即提取某目录下所有非目录文件)问题背景问题思考解决问题最后心得