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