python编程快速上手 第9章实践项目答案

9.1选择性拷贝

编写一个程序,遍历一个目录树,查找特点扩展名的文件(诸如.pdf或.jpg)。不论这些文件的位置在哪里,将它拷贝到一个新的文件夹中。

import os,shutil
for foldername,subfolders,filenames in os.walk('D:\\python\\automate_online-materials'):
    for filename in filenames:
        if filename.endswith('.pdf') or filename.endswith('.png'):
            print(os.path.join(foldername,filename))
            shutil.copy(os.path.join(foldername,filename),'D:\\test9.1')
        else:
            continue

9.2删除不需要的文件

编写一个程序,遍历一个目录树,查找特别大的文件或文件夹,比方说,超过100MB的文件,将这些文件的绝对路径打印到屏幕上

import os,shutil
for foldername,subfolders,filenames in os.walk('D:\\python\\automate_online-materials'):
    for filename in filenames:
        if os.path.getsize(os.path.join(foldername,filename))>=500000:
            print(os.path.join(foldername,filename))
            print(os.path.getsize(os.path.join(foldername,filename)))

9.3消除缺失的编号

编写一个程序,在一个文件夹中,找到所有带制定前缀的文件,诸如spam001.txt,spam002.txt等,并定位缺失的编号(例如存在spam001.txt和spam003.txt,但不存在spam002.txt)。让该程序对所有后面的文件改名,消除缺失的编号。

import os,re,shutil
num = 1
for foldername,subfolders,filenames in os.walk('D:\\test9.2'):
    for filename in filenames:
        mo = re.compile(r'spam\d{3}.*(\.\w*)$').search(filename)
        if mo == None:
            continue
        else:
            if num < 10:
                temp = 'spam00'+str(num)+mo.group(1)
            if num>=10 and num<100:
                temp = 'spam0'+str(num)+mo.group(1)
            if num>=100:
                temp = 'spam'+str(num)+mo.group(1)
            print(temp)
            shutil.move(os.path.join(foldername,filename),os.path.join(foldername,temp))
            num=num+1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值