第四十三節,文件、文件夾、壓縮包、處理模塊shutil

文件、文件夾、壓縮包、處理模塊shutilhtml

 

文件處理python

copyfileobj()模塊函數函數

功能:將a文件的內容,複製到b文件中【有參】spa

使用方法:模塊名稱.copyfileobj(poen("打開a文件"), poen("打開b文件"), [length=寬度])
日誌

格式如:shutil.copyfileobj(open("des","r",encoding='utf-8'), open("des2","w",encoding='utf-8'))code

#!/usr/bin/env python
# -*- coding:utf8 -*-
import shutil
shutil.copyfileobj(open("des","r",encoding='utf-8'), open("des2","w",encoding='utf-8')) #將a文件的內容,複製到b文件中

 

copyfile()模塊函數orm

功能:將a文件拷貝成一份b文件,將拷貝a文件的全部信息【有參】htm

使用方法:模塊名稱.copyfile("a文件路徑名稱","b文件路徑名稱")
對象

格式如:shutil.copyfile("des2","des3")blog

#!/usr/bin/env python
# -*- coding:utf8 -*-
import shutil
shutil.copyfile("des2","des3") #將a文件拷貝成一份b文件

 

copymode()模塊函數

功能:將a文件信息拷貝到b文件,僅拷貝權限(內容、組、用戶均不變)【有參】

使用方法:模塊名稱.copymode("a文件路徑名稱","b文件路徑名稱")

格式如:shutil.copymode("des","des2")

#!/usr/bin/env python
# -*- coding:utf8 -*-
import shutil
shutil.copymode("des","des2") #將a文件信息拷貝到b文件,僅拷貝權限(內容、組、用戶均不變)

 

copystat()模塊函數

功能:將a文件信息拷貝到b文件,包括:mode bits, atime, mtime, flags,(內容不變)【有參】

使用方法:模塊名稱.copystat("a文件路徑名稱","b文件路徑名稱")

格式如:shutil.copystat("des","des2")

#!/usr/bin/env python
# -*- coding:utf8 -*-
import shutil
shutil.copystat("des","des2") #將a文件信息拷貝到b文件,僅拷貝權限(內容、組、用戶均不變)

 

copy()模塊函數

功能:將a文件內容和權限拷貝到b文件,b文件若是不存在則建立【有參】

使用方法:模塊名稱.copy("a文件路徑名稱","b文件路徑名稱")

格式如:shutil.copy("des","des2")

#!/usr/bin/env python
# -*- coding:utf8 -*-
import shutil
shutil.copy("des","des2") #將a文件內容和權限拷貝到b文件,b文件若是不存在則建立

 

copy2()模塊函數

功能:將a文件內容和狀態信息拷貝到b文件,b文件若是不存在則建立【有參】

使用方法:模塊名稱.copy2("a文件路徑名稱","b文件路徑名稱")

格式如:shutil.copy2("des","des2")

#!/usr/bin/env python
# -*- coding:utf8 -*-
import shutil
shutil.copy2("des","des2") #將a文件內容和狀態信息拷貝到b文件,b文件若是不存在則建立

 

文件夾處理

ignore_patterns()模塊函數

功能:忽略文件指定的文件,通常都是配合其餘使用【有參】

使用方法:模塊名稱.ignore_patterns("要忽略的文件","多個文件用,號隔開")    

格式如:shutil.ignore_patterns("des")

copytree()模塊函數

功能:遞歸的去拷貝文件夾包括內容,將a文件夾拷貝成一份b文件夾,若是b文件夾存在報錯,[可選:1若是裏面有快捷方式是拷貝快捷方式,仍是原文件、2是否忽略裏面的指定文件不拷貝]【有參】

使用方法:模塊名稱.copytree("a文件夾路徑名稱","b文件夾路徑名稱",symlinks=是否拷貝快捷方式,ignore=須要忽略的文件)

格式如:shutil.copytree("2","3",symlinks=False,ignore=shutil.ignore_patterns('*.py'))

#!/usr/bin/env python
# -*- coding:utf8 -*-
import shutil
shutil.copytree("2","3",symlinks=False,ignore=shutil.ignore_patterns('*.py')) #遞歸的去拷貝文件夾包括內容,將a文件夾拷貝成一份b文件夾,若是b文件夾存在報錯,[可選:1若是裏面有快捷方式是拷貝快捷方式,仍是原文件、2是否忽略裏面的指定文件不拷貝]

 

rmtree()模塊函數

功能:遞歸的去刪除文件夾,刪除文件夾包括內容,只能刪除文件夾【有參】

使用方法:模塊名稱.rmtree("要刪除的文件夾路徑名稱")

格式如:shutil.rmtree("3")

#!/usr/bin/env python
# -*- coding:utf8 -*-
import shutil
shutil.rmtree("3") #遞歸的去刪除文件夾,刪除文件夾包括內容,只能刪除文件夾

 

shutil.move()模塊函數

功能:文件夾重命名【有參】

使用方法:模塊名稱.shutil.move("要重命名文件夾路徑名稱","要命名的名稱")

格式如:shutil.move("2","3")

#!/usr/bin/env python
# -*- coding:utf8 -*-
import shutil
shutil.move("2","3") #文件夾重命名

 

壓縮文件處理

make_archive()模塊函數

功能:將一個指定文件夾,壓縮成指定格式的壓縮包,保存到指定路徑【有參】

使用方法:模塊名稱.make_archive("要保存的路徑加壓縮包名稱","壓縮格式",root_dir="要壓縮的路徑加目錄名稱")

格式如:shutil.make_archive("H:\py/123","zip",root_dir="H:\py/3")

make_archive(base_name, format,...)

base_name: 壓縮包的文件名,也能夠是壓縮包的路徑。只是文件名時,則保存至當前目錄,不然保存至指定路徑,【必選】
如:www =>保存至當前路徑
如:/Users/wupeiqi/www =>保存至/Users/wupeiqi/
format: 壓縮包種類,「zip」, 「tar」, 「bztar」,「gztar」 【必選】
root_dir: 要壓縮的文件夾路徑(默認當前目錄)【必選】
owner: 用戶,默認當前用戶【可選】
group: 組,默認當前組【可選】
logger: 用於記錄日誌,一般是logging.Logger對象【可選】

#!/usr/bin/env python
# -*- coding:utf8 -*-
import shutil
shutil.make_archive("H:\py/123","zip",root_dir="H:\py/3",) #將一個指定文件夾,壓縮成指定格式的壓縮包,保存到指定路徑

 

shutil 對壓縮包的處理是調用 ZipFile 和 TarFile 兩個模塊來進行的

ZipFile模塊

ZipFile()模塊函數

功能:打開zip壓縮包文件【有參】

使用方法:模塊名稱.ZipFile("要打開的壓縮包路徑名稱","打開模式")

格式如:zipfile.ZipFile("H:\py/789.zip","w")

r,只讀模式
w,只寫模式【不可讀;不存在則建立;存在則清空內容;】
x, 只寫模式【不可讀;不存在則建立,存在則報錯】
a, 追加模式【不可讀; 不存在則建立;存在則只追加內容;】

更多參照,第二十六節,內置函數,文件操做哪裏

write()模塊函數

功能:將指定文件添加寫入指定的zip壓縮包【有參】

使用方法:打開zip壓縮包變量.write("要寫入壓縮包文件的路徑名稱")

格式如:a.write("H:\py/2.txt")

close()模塊函數

功能:關閉打開的zip壓縮包【無參】

使用方法:打開zip壓縮包變量.close()

格式如:a.close()

#!/usr/bin/env python
# -*- coding:utf8 -*-
import zipfile
a = zipfile.ZipFile("H:\py/789.zip","w") #打開指定的zip文件,以w模式打開,若是文件不存在則建立
a.write("H:\py/2.txt") #將指定的文件,寫入添加到壓縮包
a.write("H:\py/des") #將指定的文件,寫入添加到壓縮包
a.close() #關閉打開的文件

 

extractall()模塊函數

功能:解壓指定zip壓縮包裏的全部文件,到指定路徑【有參】

使用方法:打開zip壓縮包變量.extractall(["解壓保存路徑"])

格式如:a.extractall()

#!/usr/bin/env python
# -*- coding:utf8 -*-
import zipfile
a = zipfile.ZipFile("H:\py/789.zip","r") #打開指定的zip文件,以r模式打開,若是文件不存在則建立
a.extractall() #解壓指定zip壓縮包裏的全部文件【無參】
a.close() #關閉打開的文件

 

namelist()模塊函數

功能:查看指定zip壓縮包裏的文件,返回列表,列表裏的元素是文件路徑加名稱【無參】

使用方法:打開zip壓縮包變量.namelist()

格式如:b = a.namelist()

#!/usr/bin/env python
# -*- coding:utf8 -*-
import zipfile
a = zipfile.ZipFile("H:\py/789.zip","r") #打開指定的zip文件,以r模式打開,若是文件不存在則建立
b = a.namelist() #查看指定zip壓縮包裏的文件,返回列表,列表裏的元素是文件路徑加名稱
print(b)
a.close() #關閉打開的文件
# 輸出
# ['py/2.txt', 'py/des']

 

extract()模塊函數

功能:解壓指定zip壓縮包裏的指定文件【有參】

使用方法:打開zip壓縮包變量.extract("壓縮包裏的文件路徑名稱",path="要解壓到的路徑")

格式如:a.extract("py/des",path="H:\py2")

#!/usr/bin/env python
# -*- coding:utf8 -*-
import zipfile
a = zipfile.ZipFile("H:\py/789.zip","r") #打開指定的zip文件,以r模式打開,若是文件不存在則建立
# b = a.namelist()#查看指定zip壓縮包裏的文件,返回列表,列表裏的元素是文件路徑加名稱
# print(b)
a.extract("py/des",path="H:\py2") #解壓指定zip壓縮包裏的指定文件【有參】
a.close() #關閉打開的文件

 

TarFile模塊

open()模塊函數

功能:打開tar文件,若是以w模式打開,若是文件不存在則建立【有參】

使用方法:模塊名稱.open("要打開的tar文件路徑名稱","打開模式")

格式如:tarfile.open("H:\py/9.tar","w")

add()模塊函數

功能:將指定目錄或文件,添加到tar壓縮包,並把添加進去的文件更改爲指定的名稱【有參】

使用方法:打開tar文件變量.add("要添加到壓縮包的文件路徑名稱",[arcname="添加到壓縮包後更改的名稱"])

格式如:a.add("H:\py2\py\des",arcname="lib2")

close()模塊函數

功能:關閉打開的tar文件

使用方法:打開tar文件變量.close()

格式如:a.close()

#!/usr/bin/env python
# -*- coding:utf8 -*-
import tarfile
a = tarfile.open("H:\py/9.tar","w") #寫入模式打開9.tar文件,若是文件不存在則建立
a.add("H:\py2\py\des",arcname="lib2") #將指定目錄或文件,添加到tar壓縮包,並把添加進去的文件更改爲指定的名稱
a.close() #關閉打開的tar文件

 

extractall()模塊函數

功能:解壓指定tar壓縮包裏的全部文件,到指定路徑【有參】

使用方法:打開tar壓縮包變量.extractall(["解壓保存路徑"])

格式如:a.extractall("H:\py")

#!/usr/bin/env python
# -*- coding:utf8 -*-
import tarfile
a = tarfile.open("H:\py/9.tar","r") #以r模式打開tar文件
a.extractall("H:\py") #解壓指定tar壓縮包裏的全部文件,到指定路徑【有參】
a.close() #關閉打開的tar文件

 

getmembers()模塊函數

功能:查看指定tar壓縮包裏的文件,返回列表,列表裏的元素是文件路徑加名稱【無參】

使用方法:打開tar壓縮包變量.getmembers()

格式如:b = a.getmembers()

#!/usr/bin/env python
# -*- coding:utf8 -*-
import tarfile
a = tarfile.open("H:\py/9.tar","r") #以r模式打開tar文件
b = a.getmembers() #查看指定tar壓縮包裏的文件,返回列表,列表裏的元素是文件路徑加名稱【無參】
for i in b:
    print(i)
a.close() #關閉打開的tar文件
# 輸出
# <TarInfo 'py2/py' at 0x78f5462d90>
# <TarInfo 'py2/py/2.txt' at 0x78f5462f20>
# <TarInfo 'py2/py/3.html' at 0x78f554b048>
# <TarInfo 'py2/py/des' at 0x78f554b110>
# <TarInfo 'py2/py/ini' at 0x78f554b1d8>

 

extract()模塊函數

功能:解壓指定tar壓縮包裏的指定文件【有參】

使用方法:打開tar壓縮包變量.extract("壓縮包裏的文件路徑名稱",path="要解壓到的路徑")

格式如:a.extract("py2/py/des",path="H:\py")

#!/usr/bin/env python
# -*- coding:utf8 -*-
import tarfile
a = tarfile.open("H:\py/9.tar","r") #以r模式打開tar文件
a.extract("py2/py/des",path="H:\py") #解壓指定tar壓縮包裏的指定文件【有參】
a.close() #關閉打開的tar文件
相關文章
相關標籤/搜索