檔名提取、修改

Hugsun1314發表於2020-12-02

os

import os
1.檔名稱提取

  • os.listdir(path=’.’)

返回一個包含由 path 指定目錄中條目名稱組成的列表。 該列表按任意順序排列,並且不包括特殊條目 ‘.’ 和 ‘…’,即使它們存在於目錄中。 如果有檔案在呼叫此函式期間在被移除或新增到目錄中,是否要包括該檔案的名稱並沒有規定。

path 可以是 類路徑物件。如果 path 是(直接傳入或通過 PathLike 介面間接傳入) bytes 型別,則返回的檔名也將是 bytes 型別,其他情況下是 str 型別。

本函式也支援 指定檔案描述符為引數,其中描述符必須指向目錄。

引發一個 審計事件 os.listdir,附帶引數 path。
參見 scandir() 函式返回目錄內檔名的同時,也返回檔案屬性資訊,它在某些具體情況下能提供更好的效能。

  • os.scandir(path=’.’)

**返回一個 os.DirEntry 物件的迭代器,它們對應於由 path 指定目錄中的條目。 **這些條目會以任意順序生成,並且不包括特殊條目 ‘.’ 和 ‘…’。 如果有檔案在迭代器建立之後在目錄中被移除或新增,是否要包括該檔案對應的條目並沒有規定。

如果需要檔案型別或檔案屬性資訊,使用 scandir() 代替 listdir() 可以大大提高這部分程式碼的效能,因為如果作業系統在掃描目錄時返回的是 os.DirEntry 物件,則該物件包含了這些資訊。所有 os.DirEntry 的方法都可能執行一次系統呼叫,但是 is_dir() 和 is_file() 通常只在有符號連結時才執行一次系統呼叫。os.DirEntry.stat() 在 Unix 上始終需要一次系統呼叫,而在 Windows 上只在有符號連結時才需要。

  • os.remove(path, *, dir_fd=None)

**移除(刪除)檔案 path。**如果 path 是目錄,則丟擲 IsADirectoryError 異常。請使用 rmdir() 刪除目錄。

  • os.rename(src, dst, *, src_dir_fd=None, dst_dir_fd=None)

將檔案或目錄 src 重新命名為 dst。

  • os.renames(old, new)

**遞迴重新命名目錄或檔案。**工作方式類似 rename(),除了會首先建立新路徑所需的中間目錄。重新命名後,將呼叫 removedirs() 刪除舊路徑中不需要的目錄。

  • os.replace(src, dst, *, src_dir_fd=None, dst_dir_fd=None)

將檔案或目錄 src 重新命名為 dst。

  • os.rmdir(path, *, dir_fd=None)

移除(刪除)目錄 path

相關文章