本关任务:编写一个小程序,在test3文件夹下建立子文件夹,并根据文件类型将文件移动到相应的文件夹下。
为了完成本关任务,你需要掌握:os模块和shulti模块
os模块
os模块为系统内置模块,提供了对系统环境、文件、目录等操作系统级的接口函数。 listdir() 返回指定目录下的所有文件和目录名 mkdir() 创建目录 rmdir() 删除目录 path.isfile() 检验是否是一个文件 path.splitext() 文件名和扩展名分离 os.path.exists() 文件或文件夹是否存在
shulti模块
shutil模块是对os模块的补充,主要针对文件的拷贝、删除、移动、压缩和解压操作 rmtree(sdir) 删除文件夹(包括所有子文件夹和文件) move(src, ddir) 移动文件到另一个文件夹
根据test3文件夹下文件的类型,在test3文件夹下建立相应的子文件夹,并将文件移动到相应的文件夹下。 具体来说,扩展名为.jpeg.jpg.png.jifi的文件移动到图片子文件夹下,.mp3.wav移动到音频文件夹下,.mp4.flv移动到视频文件夹下,.txt.docx.pdf移动到文档文件夹下。 提示:可以建立字典来指定文件夹和文件的对应关系
最后,需要在test3下建立图片、文档、音频和视频四个文件夹,并将文件按扩展名的对应关系移动到相应文件夹下 最后显示如下
['ifs大熊猫.jpg', '基地1.jpg', '春熙路图集1.jfif', '春熙路图集2.jpeg', '春熙路图集3.jfif', '杜甫草堂.png', '青城山.png']
['学院设置.docx', '昆明.docx', '琵琶行并序.txt', '考题一.pdf', '考题四.pdf']
['add.wav', 'score.wav', '山歌好比春江水.mp3', '花儿尕恋手令.mp3']
['pq.flv', '七彩丹霞视频.mp4', '云南十八怪_.mp4']
开始你的任务吧,祝你成功!
import os
import shutil
wj={"图片":".jpeg.jpg.png.jfif","文档":".txt.docx.pdf","音乐":".mp3.wav","影像":".mp4.flv"}
lj1="wjcl/src/test2"
lj="wjcl/src/test3"
if os.path.exists(lj):
shutil.rmtree(lj)
shutil.copytree(lj1,lj)
#代码开始
k=os.listdir(lj)
k.remove(".gitkeep")
for x in wj.keys():
if not os.path.exists(lj+"/"+x):
os.mkdir(lj+"/"+x)
for y in k:
wjm,kzm=os.path.splitext(y)
if kzm in wj['图片']:
shutil.move(lj+"/"+y,lj+"/"+"图片")
if kzm in wj['文档']:
shutil.move(lj+"/"+y,lj+"/"+"文档")
if kzm in wj['音乐']:
shutil.move(lj+"/"+y,lj+"/"+"音乐")
if kzm in wj['影像']:
shutil.move(lj+"/"+y,lj+"/"+"影像")
#代码结束
for x in wj.keys():
print(os.listdir(lj+'/'+x))