Python 组织文件:shutil模块与os,send2trash安全删除模块

Python shutil模块

shutil模块或者称为shell工具中包含了一些函数,让你在python程序中复制,移动,改名,删除文件得心应手要使用shutil模块,首先需要import shutil。

复制文件和文件夹

shutil.copy((src, dst) ,表示将入经src下的文件复制到dst文件夹下。若dst字符串指定为文件类名字,则复制过程中更改文件名字。

import os, shutil
# shutil.copy((src, dst)
print(os.getcwd())
# D:\pyill

shutil.copy('D:\\pyill\\text1','D:\\pyill\\destination')
print os.listdir('D:\\pyill\\destination')
# ['text1']

shutil.copy('D:\\pyill\\text1','D:\\pyill\\destination\\eggtext.txt')
print os.listdir('D:\\pyill\\destination')
# ['eggtext.txt', 'text1']

##shutil.copytree(src, dst, symlinks=False, ignore=None): 将src处的文件夹(包括子文件和文件夹)复制到dst处的文件夹,若dst不存在,则创建。

import os, shutil

shutil.copytree('D:\\pyill\\destination','D:\\pyill\\pydsc')
print os.listdir('D:\\pyill\\pydsc')
# ['eggtext.txt', 'text1']

文件夹的移动与改名

shutil.move(src, dst),把一个路径文件src移动到路径dst处,如果路径dst为文件名格式,则文件src移动后并改名。移动的路径det必须已经存在。

import os, shutil

shutil.move('D:\\pyill\\text1','D:\\pyill\\pydec')
print os.listdir('D:\\pyill\\pydec')
# ['text1']

shutil.move('D:\\pyill\\pydec\\text1','D:\\pyill\\modtext.txt')
print os.listdir('D:\\pyill')
# ['.idea', 'destination', 'modtext.txt', 'pydec', 'pydsc', 'py_shuil.py']


#\pyill\\cc文件夹不存在
shutil.move('D:\\pyill\\pydec2','D:\\pydec2')
# IOError: [Errno 2] No such file or directory: 'D:\\pyill\\cc\\pydec2'```

shutil.move方法有一些小坑不被重视,当一个文件(.txt),从一个文件夹移动到另一个文件夹时,拓展名可能更改为其他文件名字,也可能这个名字不具备常用文件格式名,这就对以后的开发查找备份等不变,平时要慎用这个方法


shutil.move('D:\\pyill\\pydec2','D:\\pydec2')

shutil.move('D:\\pyill\\pydec3.txt','D:\\pydec3')

永久删除文件和文件夹

os.unlink(path) 将删除path处的文件。

os.rmdir(path)将删除path处的文件夹,文件夹必须为空文件夹。

shutil.rmtree(path),将递归删除path处的文件夹及文件

for filename in os.listdir('D:\\pyill\\pydsc'):
    if filename.endswith('.txt'):
        #删除以.txt结尾的文件
        os.unlink(filename)
    print filename

	if os.path.isdir('D:\\pyill\\' + filename) and  (not os.listdir('D:\\pyill\\+ filename')):
     #删除空文件夹
     os.rmdir('D:\\pyill\\' + filename)


#直接删除pyill文件夹及其子文件文件夹
shutil.rmtree('D:\\pyill')

send2trash安全删除模块

以上方法删除文件都是不可恢复的删除,在开发过程中,有些程序员经常误删文件,所以那些方法有时候用起来特别不安全。send2trash为第三方的删除工具,它把文件删除前会把文件发到计算机的垃圾箱或者回收站,如果删除的文件为重要文件,可以从垃圾箱中恢复。

使用前需要安装 pip install send2trash

import  send2trash

baconfile = open('bacon.txt','a')

baconfile.write('bacon is important')
baconfile.close()
send2trash.send2trash('bacon.txt')
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值