[Python]OS檔案操作

閱讀時間約 6 分鐘

在讀取檔案時,最怕路徑的問題,常常會有路徑錯誤造成的異常報錯。

raw-image

為了避免諸如此類的問題發生,明白程式的當前目錄與檔案的路徑是很重要的。

可以利用os 模組是 Python 中的一個標準庫,提供了許多與操作系統的功能。


以下是一些常用的 os 模組基本操作及其範例:

1. os.getcwd()

讀取當前工作目錄。

import os

current_directory = os.getcwd()
print("Current Working Directory:", current_directory)

2. os.chdir(path)

改變當前工作目錄。

import os

os.chdir('/path/to/new/directory')
print("Changed Working Directory to:", os.getcwd())

結合範例

import os

current_directory = os.getcwd()
print("Current Working Directory:", current_directory)

os.chdir('F:/python')
print("Changed Working Directory to:", os.getcwd())

先讀取目前的工作目錄確認在 F:\python\opencv,在修改工作目錄'F:/python',在印出來確認有修改完成

raw-image

3. os.listdir(path)

列出指定目錄中的所有文件和子目錄。

import os

files = os.listdir('F:/python/new')
print("Files and directories in 'F:/python/new'':", files)

# 印出 Files and directories in 'F:/python/new'': ['multi', '1.txt', '2.txt']

資料夾內有子目錄:multi 文件1.txt', 2.txt。

資料夾內容

資料夾內容

4. os.mkdir(path)

創建單個目錄。

import os

os.mkdir('/path/to/new/directory')

5. os.makedirs(path)

創建多級目錄。顧名思義就是多創造多層的目錄

exist_ok=True,意思是若資料夾存在就不創建,避免重複創建報錯

import os

os.mkdir('F:/python/new/multi/level/directory')

直接創立了new與multi與level跟directory四個資料夾。

raw-image

6. os.remove(path)

刪除文件。

import os

os.remove('/path/to/file')

7. os.rmdir(path)

刪除單個目錄(該目錄必須是空的)。

import os

os.rmdir('/path/to/empty/directory')

8. os.rename(src, dst)

重命名文件或目錄。

import os

os.rename('/path/to/current_name', '/path/to/new_name')

9. os.path.exists(path)

檢查路徑是否存在。

import os

if os.path.exists('/path/to/check'):
print("Path exists.")
else:
print("Path does not exist.")

10. os.path.join(*paths)

拼接路徑。

import os

path = os.path.join('/path', 'to', 'directory_or_file')
print("Joined path:", path)

11. os.path.isfile(path)

檢查路徑是否為文件。

import os

if os.path.isfile('/path/to/file'):
print("It is a file.")
else:
print("It is not a file.")

12. os.path.isdir(path)

檢查路徑是否為目錄。

import os

if os.path.isdir('/path/to/directory'):
print("It is a directory.")
else:
print("It is not a directory.")

13. os.path.getsize(path)

獲取文件大小(以字節為單位)。

import os

size = os.path.getsize('/path/to/file')
print("File size:", size, "bytes")

14. os.path.abspath(path)

讀取絕對路徑。

import os

absolute_path = os.path.abspath('relative/path/to/file_or_directory')
print("Absolute path:", absolute_path)

15. os.environ

讀取目前環境變量。

import os

home_directory = os.environ.get('HOME')
print("Home directory:", home_directory)



52會員
109內容數
Python程式設計師,不是在學習就是在學習的路上
留言0
查看全部
發表第一個留言支持創作者!
你可能也想看
Python中的函式操作們(上)今天來介紹python的函式 函式在python中是非常重要的一環,因為到了後期,程式會越來越複雜。 而函式可以想成是容易管理的小程式,當我們需要使用時,只需呼叫即可。
Thumbnail
avatar
媗日
2024-04-25
Python四大容器大解析古有四大名著,現今Python四大容器🤣 哪四個?list串列,tuple元組,dict字典,set集合。 那這四個怎麼分? 一起來看看吧! (以下有手寫與上機實際測試請付費觀看) 以上我精心整理主要會使用到的功能 當然python功能太多了,肯定不只。 實際操作: 大概就這樣?(
Thumbnail
avatar
媗日
2024-04-06
【Python】Mac平台上的Jython和JES安裝指導先來名詞解釋jython跟JES: jython是一種實現了Python語言的Java平台版本的解釋器。它允許開發人員在Java虛擬機(JVM)上運行Python代碼,從而實現了Python語言與Java平台的無縫集成。 JES(Jython Environment for Students)是
Thumbnail
avatar
W. C. Chen
2024-03-27
【Python】Python在ETL處理的事先準備 - CSV、Excel、SQLite和SQLAlchemyETL是資料倉儲領域中一個重要的概念,全稱為Extract-Transform-Load,中文可譯為"抽取-轉換-載入"。ETL的作用是將來自不同來源的資料抽取出來,經過清理、轉換、整合等處理後,最終將處理好的資料載入到資料倉儲或其他單一的資料存放區
Thumbnail
avatar
W. C. Chen
2024-03-25
【Python超簡單】Python 變數的基本觀念在求學階段,你已經對代數的計算熟到不能再熟,所以變數(variable)對你來說應該不至於太陌生,先來看看以下這個例子:   
avatar
伯亞
2024-03-22
【Python 知識科普】 關於WSGI與ASGI 使用Python開發後端API的經驗中應該會常常看到WSGI與ASGI這兩個名詞, 兩者的差異究竟是什麼呢? 就讓我們來為您科普一番。 什麼是WSGI 全名為「Web Server Gateway Interface」 Web伺服器閘道介面,主要規範HTTP請求如何與伺服器溝通, 通
Thumbnail
avatar
阿Han
2024-03-19
【Python超簡單】Python 開發工具及其安裝過程想要開始Python語言的開發環境,有兩種常見方式,一種是下載安裝到本機端,另一種是直接在雲端執行。本文將介紹三個常見的開發工具及其安裝步驟。
avatar
伯亞
2024-03-19
Python pyqt學習筆記 物件拖曳[Kurt]本篇文章將教你如何使用Python和PyQt5來建立一個GUI應用程式。PyQt5是一個相當流行的Python模組,透過這個文章你將學習如何使用它來建立一個互動式的應用程式。
Thumbnail
avatar
hls Ding
2024-03-13
【Python 技術選型】如何選出適合的API框架呢? 當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端
Thumbnail
avatar
阿Han
2024-03-12
【Python 軍火庫🧨 - silero-vad】 偵測語音活動的神兵利器 當我們在進行「語音辨識」的應用開發時, 首先會面臨一個問題, 那就是究竟要怎麼知道哪些段落是「人在說話的區段」, 精確的標示出這些區段之後, 我們除了可以儲存成純對話的段落, 還可以做出時間軸的字幕檔, 應用非常廣泛, 因此學會怎麼用VAD是進入語音領域非常重要的其中一個環節。 VAD代表
Thumbnail
avatar
阿Han
2024-02-27