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')