亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python的shutil模塊

發布時間:2020-09-21 09:51:09 來源:億速云 閱讀:104 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關Python的shutil模塊,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

常用模塊 - shutil模塊

一、簡介

shutil – Utility functions for copying and archiving files and directory trees.(用于復制和存檔文件和目錄樹的實用功能。)

shutil是shell

utility的縮寫

shutil.move直接從一個地方挪到另一個地方,而os.rename常常只能重命名,不能挪動位置。

功能是:

>>>shutil.move('old.txt',r'c:datarchive')
>>>shutil.copy('old.txt',r'c:datarchive')
>>>os.remove('junk.dat')

二、高級文件操作(拷貝/移動/壓縮/解壓縮)

#!/usr/bin/env python
# coding=utf-8
__author__ ='zhuo'
__date__ ='2017/5/25'
# shutil_demo.py高級文件操作(拷貝/移動/壓縮/解壓縮)
importshutil
defshutil_demo():
#拷貝文件
shutil.copy2('file.txt','temp.txt')
#拷貝目錄
shutil.copytree("root","temp", symlinks=False,
ignore=shutil.ignore_patterns("*.pyc"), copy_function=shutil.copy2, ignore_dangling_symlinks=True)
#刪除目錄
shutil.rmtree("temp", ignore_errors=True)
#移動文件/目錄
shutil.move("root","temp",copy_function=shutil.copy2)
#獲取磁盤使用空間
total, used, free =shutil.disk_usage(".")
print("當前磁盤共:
%iGB,已使用: %iGB,剩余:
%iGB"%(total
/1073741824, used /1073741824, free /1073741824))
#壓縮文件
shutil.make_archive('Box','zip','temp')
#解壓文件
shutil.unpack_archive('Box.zip')
defshutil_func():
#文件和目錄操作
# shutil.copyfileobj(fsrc, fdst[,
length]) //拷貝文件內容,將fsrc文件里的內容copy到fdst文件中, length:緩沖區大小
shutil.copyfileobj(open('file.txt','r'), open('temp.txt','w'))
# shutil.copyfile(src, dst, *,
follow_symlinks=True) //拷貝文件內容,同copyfileobj,如果dst=src,拋SameFileError異常, dst存在則替換
dst = shutil.copyfile('file.txt','temp.txt')
# shutil.copymode(src, dst, *,
follow_symlinks=True) //僅拷貝權限,其他信息不受影響
shutil.copymode('file.txt','temp.txt')
# shutil.copystat(src, dst, *,
follow_symlinks=True) //拷貝狀態(權限/最后訪問時間/上次修改時間/標志),其他不受迎影響
shutil.copystat('file.txt','temp.txt')
# shutil.copy(src, dst, *,
follow_symlinks=True) //拷貝文件(數據/權限)
dst = shutil.copy('file.txt','temp.txt')
# shutil.copy2(src, dst, *,
follow_symlinks=True) //拷貝文件(嘗試保留所有元數據) (不能拷貝創建時間,該時間可通過修改系統時間再創建文件來實現)
dst = shutil.copy2('file.txt','temp.txt')
# shutil.ignore_patterns(*patterns)
# symlinks:True(復制鏈接) / False(復制文件),
ignore=ignore_patterns("") //忽略的文件,
copy_function=自定義復制函數,
ignore_dangling_symlinks:True(忽略文件不存在異常) / False(錯誤列表中添加異常)
# shutil.copytree(src, dst,
symlinks=False, ignore=None, copy_function=copy2,
ignore_dangling_symlinks=False) //遞歸的復制根目錄下的整個目錄樹
dst = shutil.copytree("root","temp", symlinks=False,
ignore=shutil.ignore_patterns("*.pyc"), copy_function=shutil.copy2,
ignore_dangling_symlinks=True)
# shutil.rmtree(path,
ignore_errors=False, onerror=None) //刪除整個目錄樹, ignore_errors:是否忽略刪除失敗錯誤, onerror=def
error(func, path, excinfo)
shutil.rmtree("temp", ignore_errors=True)
# shutil.move(src, dst, copy_function=copy2)
//遞歸移動文件/目錄,目錄存在則移動目錄,文件存在則覆蓋
dst = shutil.move("root","temp",copy_function=shutil.copy2)
total, used, free =shutil.disk_usage(".")#給定路徑的磁盤使用情況統計信息
# shutil.chown(path, user=None,
group=None) //修改用戶和組(Unix可用)
# shutil.which(cmd, mode=os.F_OK |
os.X_OK, path=None) //可執行文件路徑, path:要查找的路徑,未指定使用os.environ的結果
path_str = shutil.which("python")
#異常
try:pass
exceptshutil.SameFileError:pass# copyfile()時,源和目錄是同一個文件時,拋此異常
exceptshutil.Error:pass# copytree()時,多文件操作時引發的異常,異常包含(srcname, dstname, excinfo)
#壓縮文件操作(封裝了zipfile / tarfile)
#創建歸檔文件base_name:壓縮包文件名, format:格式zip / tar / bztar / xztar / gztar, root_dir:被歸檔的根目錄(默認當前目錄)
# base_dir:保存歸檔文件的目錄(默認當前目錄)
verbose:已棄用dry_run:True(不創建歸檔,但記錄日志),
owner:用戶, group:用戶組, logger:日志
# shutil.make_archive(base_name,
format[, root_dir[, base_dir[, verbose[, dry_run[, owner[, group[,
logger]]]]]]])
dst = shutil.make_archive('Box','zip','temp')#注意:root_dir /
base_dir至少寫一個,不然會造成壓縮包再次被打包的情況
#分拆歸檔,
filename:文件名, extract_dir:解壓到目錄(默認當前目錄),
format:格式(未提供,根據擴展名查找,未找到引發ValueError)
# shutil.unpack_archive(filename[,
extract_dir[, format]])
shutil.unpack_archive('Box.zip')
lists =shutil.get_archive_formats()#返回支持的歸檔格式列表[(format, info)]
lists =shutil.get_unpack_formats()#返回所有注冊格式的列表[(name, extensions, description)]
#注冊壓縮格式,
name:格式名, function:def func(base_name, base_dir,
owner, group, dry_run, logger), extra_args:額外參數,
description:說明信息
# shutil.register_archive_format(name,
function[, extra_args[, description]])
# shutil.unregister_archive_format(name)
//注銷壓縮格式
#注冊解壓格式name:格式名, extensions:擴展名列表, function:實現函數def unpack(filename, extract_dir),
extra_args:額外參數(name, value),
description:說明
# shutil.register_unpack_format(name,
extensions, function[, extra_args[, description]])
# shutil.unregister_unpack_format(name)
//注銷解壓格式
#終端
#
shutil.get_terminal_size(fallback=(columns, lines))
columns, lines = shutil.get_terminal_size()#查詢終端大小(寬,高),無法查詢返回默認大小(80, 24)
if__name__ =="__main__":
shutil_demo()
# shutil_func()

三、實例

#!/usr/bin/python3
# -*- coding:utf-8 -*- 
import shutil
 
# 1 shutil.copyfileobj(fsrc, fdst[, length=16*1024])
# copy文件內容到另一個文件,可以copy指定大小的內容
# 注意! 在其中fsrc,fdst都是文件對象,都需要打開后才能進行復制操作
f1 = open("1.txt", "r")
f2 = open("2.txt", "w+")
shutil.copyfileobj(f1, f2)
 
# 2 shutil.copyfile(src,dst)
# copy文件內容,是不是感覺上面的文件復制很麻煩?還需要自己手動用open函數打開
# 文件,在這里就不需要了,事實上,copyfile調用了copyfileobj
shutil.copyfile("1.txt", "3.txt")
 
# 3 shutil.copymode(src,dst)
# 僅copy權限,不更改文件內容,組和用戶。
shutil.copymode("1.txt", "3.txt")
 
# 4 shutil.copystat(src,dst)
# 復制所有的狀態信息,包括權限,組,用戶,時間等
shutil.copystat("1.txt", "3.txt")
 
# 5 shutil.copy(src,dst)
# 復制文件的內容以及權限,先copyfile后copymode
shutil.copy("1.txt", "4.txt")
 
# 6 shutil.copy2(src,dst)
# 復制文件的內容以及文件的所有狀態信息。先copyfile后copystat
shutil.copy2("1.txt", "5.txt")
 
# 7 shutil.copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2,ignore_dangling_symlinks=False)
# 遞歸的復制文件內容及狀態信息
shutil.copytree("1", "2")
 
# 8 shutil.rmtree(path, ignore_errors=False, onerror=None)
# 遞歸地刪除文件
shutil.rmtree("2")
 
# 9 shutil.move(src, dst)
# 遞歸的移動文件
shutil.move("1", "2")
 
# 10 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"or "gztar"
# root_dir:   將哪個目錄或者文件打包(也就是源文件)
shutil.make_archive("壓縮包", "zip", r"2")
 
# 入口函數
if __name__ == '__main__':
    pass

看完上述內容,你們對Python的shutil模塊有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

高州市| 新兴县| 涞水县| 花莲市| 金华市| 东莞市| 蓬莱市| 措勤县| 格尔木市| 怀柔区| 瓮安县| 临颍县| 昌都县| 旌德县| 彭水| 封开县| 吐鲁番市| 天长市| 玛纳斯县| 久治县| 新沂市| 府谷县| 盘锦市| 乌兰县| 昌吉市| 景东| 堆龙德庆县| 五指山市| 海城市| 得荣县| 伊川县| 庐江县| 增城市| 广德县| 新源县| 大英县| 太白县| 梁平县| 顺平县| 广安市| 新沂市|