组织文件

 

在硬盘上创建,读取,保存文件的基础上,如何使用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')

  

posted @ 2017-02-21 15:15  回冬  阅读(245)  评论(0编辑  收藏  举报