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

本文介绍如何使用Python处理文件,通过提取文件名中的年份,将同目录文件移动到对应年份文件夹,并复制所有文件到单一目标文件夹,涉及os.mkdir、shutil.copy等功能的运用与文件夹创建的优化。
摘要由CSDN通过智能技术生成

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

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)加上循环,把获取的文件名放到循环下面
2)shutil.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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值