Python入門(二十六):檔案模組(os模組與shutil模組)

陳陳陳Chann發表於2020-10-06

點選跳轉
《Python入門系列目錄》



1. os模組

  • Python標準庫中的一個用於訪問作業系統的模組
  • 包含普遍的作業系統功能
  • 提供一個可移植的方法來使用作業系統的功能,使得程式能夠跨平臺使用
  • 查詢作業系統
    • os.name函式
      • 獲取作業系統名稱
    • os.sep函式
      • 查詢相應作業系統下檔案路徑的分隔符
    • os.linesep函式
      • 查詢當前系統使用的行終止符
  • 查詢工作路徑
    • os.getcwd()
  • 查詢指定目錄下的檔案
    • os.listdir()
      • 查詢指定目錄下的所有檔案和檔名
  • 刪除檔案
    • os.remove()
      • 移除指定檔案
    • os.mkdir()
      • 建立目錄
    • os.rmdir()
      • 刪除指定路徑的資料夾,但這個資料夾必須是空的,不包含任何檔案或子資料夾
  • 對檔案路徑的操作
    • 含有很多os.path相關函式,提供了相應的對檔案路徑的操作
函式功能
os.path.abspath(path)返回絕對路徑
os.path.basename(path)返回檔名
os.path.dirname(path)返回檔案路徑
os.path.exists(path)路徑存在則返回True,路徑損壞返回False
os.path.isfile(path)判斷路徑是否為檔案
os.path.isdir(path)判斷路徑是否為目錄

2. shutil模組

  • Python自帶的關於檔案、資料夾、壓縮檔案的高層次的操作工具

  • 能夠移動資料夾、壓縮資料夾、刪除資料夾等,但不能建立資料夾

  • 對os模組的補充

  • 移動檔案或資料夾

    • shutil.move()

      • 將指定的檔案或資料夾移動到目標路徑下,返回值是移動後的檔案絕對路徑字串。(把第一個引數移到第二個引數)
      import shutil
      
      str = shutil.move('/Users/csjjli/Desktop/python/chapter6/data.txt',
                        '/Users/csjjli/Desktop/python/chapter6/text_file')
      print(str)
      
      • 如果目標路徑指向的資料夾中已經存在了同名檔案,那麼該檔案將被重寫
      • 如果目標路徑指向一個具體的檔案,那麼指定的檔案在移動後將被重新命名
      import shutil
      
      str = shutil.move('/Users/csjjli/Desktop/python/chapter6/words.txt',
                        '/Users/csjjli/Desktop/python/chapter6/text_file/e_2.txt')
      print(str)
      
  • 複製檔案

    • shutil.copyfile(src, dst)

      • 從src檔案複製內容到dst檔案
      • dst必須是完整的目標檔名
      • 返回值是複製後到檔案絕對路徑字串
    • shutil.copy(src, dst)

      • 可以複製檔案src到檔案或目錄dst
      import shutil
      
      shutil.copy('/Users/csjjli/Desktop/python/chapter6/tt.py',
                  '/Users/csjjli/Desktop/python/chapter6/text_file/')
      
  • 複製目錄

    • shutil.copytree()

      • 用於目錄複製,返回複製後到目錄路徑
    • 目標目錄必須不存在,不能已有

      import shutil
      
      shutil.copytree('/Users/csjjli/Desktop/python/chapter6',
                      '/Users/csjjli/Desktop/text_file')
      
  • 永久刪除檔案和資料夾

    • shutil.rmtree()

      • 可以刪除指定路徑的資料夾,並且這個資料夾裡面的所有檔案和資料夾都會被刪除
      import shutil
      
      shutil.rmtree('/Users/csjjli/Desktop/text_file')
      
  • 壓縮與解壓檔案

    • shutil.make_archive()
    • shutil.unpack_archive()

    image

    import shutil
    
    shutil.make_archive('/Users/csjjli/Desktop/test', 'zip',
                        root_dir='/Users/csjjli/Desktop/text_f')
    
    import shutil
    
    shutil.unpack_archive('/Users/csjjli/Desktop/test.zip',
                          '/Users/csjjli/Desktop/test')
    

相關文章