Go | 系統套件的函式與介紹
💬 簡介
在開發過程中,經常會需要對檔案、目錄、環境變數或系統參數進行操作,而 Go 的 os
套件正是處理這類需求的核心工具。
本篇文章將介紹
os
套件的常用功能,包括檔案與目錄操作、環境變數管理、程序資訊讀取等,協助你掌握與作業系統互動的關鍵技巧。
圖片來源:Gophers
📁 建立與操作檔案
📦 建立新檔案
1
2
3
4
5
6
7file, err := os.Create("example.txt")
if err != nil {
log.Fatal(err)
}
defer file.Close()
file.WriteString("Hello, Go!\n")
📝 開啟並寫入現有檔案
1
2
3
4
5
6
7file, err := os.OpenFile("example.txt", os.O_APPEND|os.O_WRONLY, 0644)
if err != nil {
log.Fatal(err)
}
defer file.Close()
file.WriteString("追加內容\n")
📂 目錄操作
📁 建立目錄
1
2
3
4err := os.Mkdir("mydir", 0755)
if err != nil {
log.Fatal(err)
}📁 建立多層目錄
1
2
3
4err := os.MkdirAll("mydir/subdir/nested", 0755)
if err != nil {
log.Fatal(err)
}
🌍 環境變數操作
⚙️ 取得系統資訊
🧍 取得使用者與群組資訊(作業系統相關)
1
2
3fmt.Println("UID:", os.Getuid())
fmt.Println("GID:", os.Getgid())
fmt.Println("PID:", os.Getpid())
📌 實務應用場景
- ✅ 開啟、寫入與刪除檔案日誌
- ✅ 自動建立目錄結構
- ✅ 根據環境變數切換開發與正式環境
- ✅ 在 CLI 應用中獲取當前工作目錄與執行位置
- ✅ 跨平台操作檔案與系統環境
✨ 延伸技巧與補充
os.Open()
只能開啟現有檔案且為唯讀- 若需完整讀寫控制,請使用
os.OpenFile()
配合標誌如os.O_CREATE
,os.O_TRUNC
- 權限(如
0755
,0644
)使用類 Unix 權限值表示 - 搭配
io
或bufio
套件能進行進階的檔案處理(如逐行讀取)
🎯 總結
os
套件提供了與系統互動的基礎能力,支援檔案與目錄操作、環境變數存取與系統資訊查詢:
- ✅ 建立、開啟、寫入與刪除檔案
- ✅ 管理目錄結構
- ✅ 存取環境變數與執行環境資訊
這是撰寫 CLI 工具、後端系統應用與部署腳本時不可或缺的工具之一。
最後建議回顧一下 Go | 菜鳥教學 目錄,了解其章節內容。
註:以上參考了
Go