文件、文件夾、壓縮包、處理模塊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文件