用python实现新建文件夹及移动、复制文件

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

一.移动文件时遇到的问题
目标
根据文件名中的年份判断将同一个文件夹下的所有文件分别移动到新建的相应年份的文件夹中。

1.提取文件名

先用.划分提取前面一部分之后用_划分提取第4部分最后提取年月日中的年份。
[a:b]是提取从a到b-1之间的数而不是a到b
所以[0:4]是0-3之间的数

2.判断年份相等即创建文件夹
在这里插入图片描述
注意变量的数据类型

3.新建文件夹
一开始直接用os.mkdir路径并且想要加上新建的文件夹名但是一直不对后来先定义了路径路径+’//’+str(文件名然后放到os.mkdir中后发现循环中之前创建了就不能再创建相同的文件夹了采用定义新建文件夹函数的方式加上了判断文件夹是否存在
在这里插入图片描述
之后在主体代码中调用这个函数即可实现根据文件名判断将所有文件分别移动到新建的各个符合条件的文件中

二.复制文件时遇到的问题
目标
将各个文件夹中的文件都复制到新建的一个文件夹中。

1.判断是否有目标文件夹若没有则新建一个
在这里插入图片描述
由于已经写过新建文件夹相关这里就没什么问题了。

2.循环遍历各个文件夹下的文件获取文件名并复制到新建的文件夹中
一开始获取了文件名但是忘记要循环一个个复制了同时对shutil.copy用法不是很清楚导致不知道用的是路径还是文件名出现错误Permission denied搅和了好久解决
1加上循环把获取的文件名放到循环下面
2shutil.copy原文件夹路径+文件名复制到的文件夹路径+文件名
这样就能实现将多个文件夹下的文件都复制到一个新建的文件夹中

附python对于shutil.copy的说明
https://docs.python.org/3.6/library/shutil.html

参考
移动文件https://blog.csdn.net/seanblog/article/details/78885423
各种函数等https://blog.csdn.net/sinat_38682860/article/details/93388503
创建文件夹、文件https://www.jb51.net/article/201672.htm

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: python