python移动文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import os
import shutil
path = 'F:\物理学大赛视频'
name = os.listdir(path)
with open('2017标题.txt', 'r',encoding='utf-8') as f:
for i in f:
i = i.strip() # 因为发现读取txt每次都有一个空行,因为存在隐藏的换行符,故加上strip()去除
for j in name:
# 把后面的.mp4去掉
j = j[:-4]
# 因为下载器命名文件有问题,所以看一下前三个字后三个字和长度的相似情况判断是否是相同文件
if j[:3] == i[:3] and j[-4:] == i[-4:] and abs(len(j)-len(i))<=2 :
j = j + '.mp4'
begin = 'F:\\物理学大赛视频\\' + j
result = 'F:\\物理学大赛视频\\2017'
shutil.move(begin,result)
print(j)
f.close()

这段代码的作用是

先用os.listdir获取到path目录下面的所有文件名(这个目录下面有16,17,18,19年的所有视频)

然后有一个txt文件,里面有2017年视频的标题,我们的目的就是把目录下面所有的2017年视频移动到2017的文件夹中归类

大循环是txt里面的2017年视频标题,就一个个去查找目录下面有没有这些视频

因为发现txt文件每次循环出来的每一行都会多出一行空行,所以断定是隐藏了换行符,所以我们加上strip()去掉换行符

然后循环目录下的文件,先把后缀MP4去掉,然后写一个判断算法

因为我的下载器输出文件名有问题,比如他会把 : 变成 - ,所以文件很多对不上,我就用这个if来找相似的,就是前三个字符,后四个字符一样,然后长度误差在2个字符以内

然后我们再把后缀加上去,用shutil.move把文件移动,注意目录一定要是两个斜杠,一个斜杠不行

然后我们把代码中的2017改成2018,2019就可以把其他视频正确归类

代码没有创建文件夹,所以我是手动创建2017,2018这些文件夹的


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!