Python-Shutil模块

Python程序中复制、移动、改名和删除文件
- shutil.copy(source,destination)
- shutil.copytree(source,destination)
- shutil.move(src,dst)
import shutil,os
# shutil.copy(source,destin) 该函数返回复制文件的路径(字符串)
os.chdir(r"C:/Users/zfb/Desktop")
shutil.copy("Test.txt","Excel365/")
'Excel365/Test.txt'
shutil.copytree 需要在第二个参数中传入新建的路径,既程序运行前并不存在的路径
shutil.copytree("Excel365/","E:/Python/Excel")
'E:/Python/Excel'

文件和文件夹的移动与改名

调用shutil.move(source, destination),将路径source 处的文件夹移动到路径destination,并返回新位置的*绝对路径*的字符串
- 当dst参数,是文件夹名称时,会将源地址文件中的文件复制到目标地址中,如果存在同名文件会覆盖目标地址中的文件
- 当dst参数,是文件名称时,表示文件被移动并改名

eg.
shutil.move('C:\\bacon.txt', 'C:\\eggs')
    move()在C:\目录下找不到名为eggs 的文件夹,所以假定destination 指的是一个文件,而非文件夹。
    所以bacon.txt 文本文件被改名为eggs(没有.txt 文件扩展名的文本文件)
注意:
    构成目的地的文件夹必须已经存在,否则Python会抛出异常

永久删除文件和文件夹

shutil可以删除一个文件夹及其所有的内容;os模块中的函数,可以删除一个文件或一个空文件夹
os.unlink(path)
os.rmdiri(path) # 删除文件夹,文件夹必须为空
shutil.rmtree(path) # 将包含的所有文件和文件夹都会被删除
os.listdir()
['desktop.ini',
 'Excel365',
 'jdk-8u301-windows-x64.exe',
 'JS学习.pdf',
 'Test.txt',
 'Test_copy.txt',
 '北京-项目一组-2021年述职答辩(白志飞).pptx',
 '大屏指标.xlsx']
eg.
建议在删除文件前,先打印出文件名称以防误操作

send2trash模块安全删除

import send2trash
send2trash,会将文件和文件夹发送到计算机的垃圾箱或回收站中
baconFile = open('bacon.txt', 'a') # creates the file
baconFile.write('Bacon is not a vegetable.')
baconFile.close()
send2trash.send2trash('bacon.txt')

遍历目录树

posted @ 2022-01-24 09:32  三两研几  阅读(83)  评论(0编辑  收藏  举报