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

溫馨提示×

溫馨提示×

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

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

shutil模塊如何在Python3中使用

發布時間:2021-03-18 16:49:50 來源:億速云 閱讀:206 作者:Leah 欄目:開發技術

本篇文章為大家展示了shutil模塊如何在Python3中使用,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

1、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')

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

#!/usr/bin/env python
# coding=utf-8
__author__ = 'zhuo'
__date__ = '2017/5/25'
# shutil_demo.py 高級文件操作(拷貝 / 移動 / 壓縮 / 解壓縮)

import shutil


def shutil_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')



def shutil_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
  except shutil.SameFileError: pass # copyfile()時,源和目錄是同一個文件時,拋此異常
  except shutil.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()

shutil 模塊

shutil可以簡單地理解為sh + util,shell工具的意思。shutil模塊是對os模塊的補充,主要針對文件的拷貝、刪除、移動、壓縮和解壓操作。

拷貝文件, shutil會自動識別拷貝的到底是文件還是文件夾, 如果存在同名的文件將會自動進行覆蓋。

上述內容就是shutil模塊如何在Python3中使用,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

盈江县| 凯里市| 辽源市| 河北区| 塔城市| 株洲市| 长海县| 仁化县| 太仓市| 鄢陵县| 炎陵县| 高雄市| 长顺县| 新建县| 乐都县| 营口市| 黎平县| 承德县| 桐柏县| 威信县| 永靖县| 包头市| 灵丘县| 吉水县| 龙口市| 永新县| 孝感市| 万载县| 阜新市| 台北县| 合川市| 平和县| 庆元县| 淮北市| 乌兰县| 郸城县| 无为县| 甘德县| 永福县| 台安县| 松潘县|