1. 程式人生 > >shutil,zipfile,tarfile模組

shutil,zipfile,tarfile模組

一,shutil模組

1、shutil.chown()

shutil.chown('test.txt',user='mysql',group='mysql') #改變檔案的屬主和屬組.

 

2、shutil.copy()

shutil.copy('test.txt','test_copy.txt') #拷貝檔案

 

3、shutil.copy2()

shutil.copy2('test.txt','test_copy2.txt') #拷貝檔案並複製所有統計資訊,如修改時間等。

 

4、shutil.copyfile()

shutil.copyfile('test_ln.txt','test_copyfile.txt') #如果是連結檔案,將複製新檔案,不復制連結

 

5、shutil.copyfielobj()

shutil.copyfileobj(srcf,dstf,length=2) #按長度拷貝檔案物件

 

6、shutil.copymode()

shutil.copyfileobj(srcf,dstf,length=2) #按長度拷貝檔案物件

 

7、shutil.copystat()

shutil.copystat('
test.txt','test_copymode.txt') #拷貝檔案的訪問和修改時間,其他不受影響

 

8、shutil.copytree()

shutil.copytree(src, dst, symlinks=False, ignore=None) #遞迴的去拷貝資料夾

 

9、shutil.rmtree()

shutil.rmtree(path[, ignore_errors[, onerror]]) #遞迴的去刪除檔案

 

10、shutil.move()

shutil.move(src, dst) #遞迴的去移動檔案,它類似mv命令,其實就是重新命名。

 

11、shutil.make_archive()

make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0,
dry_run=0, owner=None, group=None, logger=None)
'''建立壓縮包並返回檔案路徑:
base_name:壓縮包的檔名,也可以是壓縮包的路徑,只是檔名時,儲存到當前目錄,否則儲存到指定路徑
format:壓縮包種類,‘zip’,'tar','bztar','gztar'
root_dir:要壓縮的資料夾路徑(預設當前目錄)
owner:使用者,預設當前使用者
group:組,預設當前組
logger:用於記錄日誌,通常是logging.Logger物件
'''

 

#將/root目錄下的所有檔案壓縮到media目錄下取名為www,壓縮格式為tar

ret = shutil.make_archive("/media/www",'tar',root_dir='/root')

 

#將檔案以tar格式壓縮到當前目錄下

ret = shutil.make_archive("ipython55",'tar',root_dir='/root/ipython-5.5.0')

 

二,模組zipfile,tarfile。

import zipfile
#壓縮

>>> z = zipfile.ZipFile('xin.tar.gz','w') #建立名為xin.tar.gz的壓縮檔案
>>> z.write('test.txt') #寫入檔案到壓縮檔案中
>>> z.write('log.txt')
>>> z.close() #關閉檔案

 


#解壓縮

>>> z = zipfile.ZipFile('xin.tar.gz','r') #開啟壓縮檔案
>>> z.extractall(path='/python/day7') #解壓到指定路徑下
>>> z.close()

 


>>> import tarfile
#壓縮

>>> tar = tarfile.open('/usr/targzfile.tar.gz','w') #指定目錄建立壓縮檔案
>>> tar.add('/python/day7/test1.py',arcname='test1.py') #新增檔案到壓縮檔案中
>>> tar.add('/python/day7/test1.py',arcname='test2.py')
>>> tar.close()

 

#解壓縮

>>> tar = tarfile.open('/usr/targzfile.tar.gz','w') #指定目錄建立壓縮檔案
>>> tar.add('/python/day7/test1.py',arcname='test1.py') #新增檔案到壓縮檔案中
>>> tar.add('/python/day7/test1.py',arcname='test2.py')
>>> tar.close()