组织文件
在硬盘上创建,读取,保存文件的基础上,如何使用Python批量复制,改名,移动或压缩文件
一、shutil 模块
1.复制文件和文件夹
shutil.copy(source, destination) 返回被复制文件的路径字符串
shutil.copytree(source, destination) 返回新复制的文件夹路径的字符串
2.改名、移动文件和文件夹
shutil.move(source, destination)当文件夹中已存在文件,将被覆写;
当不存在文件夹时,文件名字将改为文件夹名字; 但构成目的地的文件夹必须已经存在!
shutil.move('C:\\bacon.txt', 'C:\\eggs') 'C:\\eggs'
3.永久删除文件和文件夹
os.unlink(path)删除path处的文件
os.rmdir(path)删除path处的文件夹,文件夹必须为空
shutil.rmtree(path)删除path处的文件夹,包含所有文件和文件夹
>>> import os
>>> for filename in os.listdir():
if filename.endswith(' .rxt'):
#os.unlink(filename) 注释掉,防止录入错误
print(filename)
4.用send2trash模块安全删除
import send2trash 将文件发送到垃圾箱,不释放磁盘空间
二、遍历目录树
os.walk() 传入文件夹路径字符串
返回三个值:1)当前文件夹名称字符串
2)当前文件夹中子文件夹的字符串列表
3)当前文件夹中子文件的字符串列表
三、用zipfile模块压缩文件
1.读取文件
zipfile.ZipFile() 传入字符串,表示.zip文件的文件名
namelist() ,返回ZIP文件中所有的文件和文件夹的字符串的列表
getinfo() 传入文件名字符串,返回一个关于特定文件的ZipInfo对象,对象包含属性如:file_size和compress_size(表示字节数)
ZipFile对象表示整个归档文件
ZipInfo对象保存该文档文件中每个文件的有用信息
2.解压缩ZIP文件
extractall() 解压缩所有文件和文件夹,放入当前工作目录中
传入一个文件夹名称,则文件解压缩至此文件夹中
若传入的文件夹不存在,则会被创建
extract() 解压缩单个文件。返回值是被压缩后文件的绝对路径
传入的字符串,必须匹配namelist()中的一个
或传递第二个参数,将文件解压缩到指定文件夹,若不存在则被创建
3.创建和添加到ZIP文件
write()第一个参数是要添加的文件名字符串,第二个是“压缩类型”参数:compress_type=zipfile.ZIP_DEFLATED
1)要创建压缩文件,必须以“写模式”打开ZipFile对象,即传入‘w’作为第二个参数
newZip = zipfile.ZipFile('new.zip', 'w')
2)写模式将擦除ZIP文件中所有原内容,如果只添加,则传入‘a’为第二个参数,以添加模式打开ZIP文件
newZip = zipfile.ZipFile('new.zip', 'a')