shutil模块主要是对文件的高级操作,以及压缩文件等的操作,我们下来先来看该模块的主要方法,以及
该模块的详细的信息介绍,见操作的代码:
import shutil
print dir(shutil)
print type(help(shutil))
下面我们详细的来看shutil模块的常用的方法,以及依据具体的案例,来进行操作,我们先来看把文件内容复制到另外一个文件,实现文件内容的复制,具体就是我们把config文件夹下的config.ini文件内容复制到log文件夹下的log.md,见实现的代码:
import shutil
import os
#实现读取一个文件内容然后复制到另外一个文件
if os.path.exists(os.path.join(os.path.dirname(__file__),'log','log.md')):
shutil.copyfileobj(open(os.path.join(os.path.dirname(__file__),'config','config.ini'),'r'),
open(os.path.join(os.path.dirname(__file__),'log','log.md'),'w'))
执行代码之后,就会实现文件内容的复制。下来我们来实现copy文件,就是把config文件夹下的config.ini文件copy到log的文件夹,见实现的代码:
import shutil
import os
#实现读取一个文件内容然后复制到另外一个文件
if os.path.exists(os.path.join(os.path.dirname(__file__),'log','config.ini')):
print u'config.ini文件已存在log文件夹目录,不需要copy'
else:
shutil.copyfile(os.path.join(os.path.dirname(__file__),'config','config.ini'),
os.path.join(os.path.dirname(__file__),'log','config.ini'))
注释:实现把一个文件从一个目录复制到另外一个文件,也包含了文件内容的,也就是说,copy到新的目录下的文件内容和之前的文件内容一致。其他常用的方法见如下的代码:
import shutil
import os
#拷贝文件和权限
shutil.copy('db.ini','c:/log.db')
#仅拷贝权限,内容,组,用户均不会变,不会拷贝文件内容
shutil.copymode('db.ini','')
#拷贝状态的信息,包括:moded bits,atime,mtime,flags
shutil.copystat()
#拷贝文件和状态信息
shutil.copy2()
#拷贝文件夹
shutil.copytree('folder1','folder2',ignore=shutil.ignore_patterns('*.py'))
#递归删除文件
shutil.rmtree()
#重命名文件
shutil.move()
见创建压缩包的程序,见实现的代码:
import shutil
import os
#创建文件压缩包并返回路径
shutil.make_archive('filename','gztar',root_dir=os.path.dirname(__file__))
网友评论