Paket os dan filepath
Variabel lingkungan, path, dan interaksi dengan OS
Paket os dan filepath adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Go Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Go Academy mencakup 4 pelajaran total.
os.Args — Argumen Baris Perintah
os.Args menyimpan argumen baris perintah. os.Args[0] adalah nama program:
package main
import ("fmt"; "os")
func main() {
fmt.Println("Program:", os.Args[0])
if len(os.Args) < 2 {
fmt.Println("Usage: program <name>")
os.Exit(1)
}
fmt.Printf("Hello, %s!\n", os.Args[1])
}os.Getenv dan os.Setenv
Baca dan tulis variabel lingkungan:
package main
import ("fmt"; "os")
func main() {
// Read env var (returns "" if not set)
home := os.Getenv("HOME")
fmt.Println("HOME:", home)
// Set env var
os.Setenv("APP_ENV", "production")
fmt.Println(os.Getenv("APP_ENV")) // production
// Get with default pattern:
port := os.Getenv("PORT")
if port == "" { port = "8080" }
fmt.Println("Port:", port)
}os.Exit — Mengakhiri Program
os.Exit mengakhiri program dengan kode status. Keluar dengan 0 = berhasil; bukan nol = kesalahan. Fungsi yang ditunda TIDAK dijalankan:
package main
import ("fmt"; "os")
func main() {
config := os.Getenv("CONFIG_PATH")
if config == "" {
fmt.Fprintln(os.Stderr, "error: CONFIG_PATH not set")
os.Exit(1) // signals error to the shell
}
fmt.Println("config:", config)
}os.Open, os.Create, os.ReadFile
Operasi berkas dengan paket os:
package main
import ("fmt"; "os")
func main() {
// Read entire file
data, err := os.ReadFile("/etc/hostname")
if err != nil {
fmt.Println(err)
return
}
fmt.Printf("hostname: %s", data)
// Write file (overwrites if exists)
err = os.WriteFile("/tmp/test.txt", []byte("hello\n"), 0644)
fmt.Println("write err:", err)
}os.Stat — Informasi Berkas
os.Stat mengembalikan informasi tentang berkas atau direktori:
package main
import ("fmt"; "os")
func main() {
info, err := os.Stat("/tmp")
if err != nil {
if os.IsNotExist(err) {
fmt.Println("does not exist")
}
return
}
fmt.Println(info.Name()) // tmp
fmt.Println(info.IsDir()) // true
fmt.Println(info.Size()) // size in bytes
fmt.Println(info.Mode()) // file permissions
fmt.Println(info.ModTime()) // last modified time
}os.MkdirAll dan os.RemoveAll
Buat dan hapus hierarki direktori:
package main
import ("fmt"; "os")
func main() {
// Create nested directories
err := os.MkdirAll("/tmp/myapp/data/logs", 0755)
fmt.Println("mkdir:", err)
// Remove a file
err = os.Remove("/tmp/test.txt")
fmt.Println("remove:", err)
// Remove directory and all contents
err = os.RemoveAll("/tmp/myapp")
fmt.Println("removeAll:", err)
}path/filepath: Jalur Lintas Platform
path/filepath menangani jalur berkas menggunakan pemisah jalur OS (/ di Unix, \ di Windows):
package main
import ("fmt"; "path/filepath")
func main() {
// Join path components correctly
p := filepath.Join("/home", "user", "docs", "file.txt")
fmt.Println(p) // /home/user/docs/file.txt
// Split path and file
dir, file := filepath.Split(p)
fmt.Println(dir, file) // /home/user/docs/ file.txt
// Extension
fmt.Println(filepath.Ext(p)) // .txt
// Base name
fmt.Println(filepath.Base(p)) // file.txt
}filepath.Walk — Menelusuri Direktori
Telusuri hierarki direktori dengan mengunjungi setiap berkas dan direktori:
package main
import ("fmt"; "os"; "path/filepath")
func main() {
err := filepath.Walk("/tmp", func(path string, info os.FileInfo, err error) error {
if err != nil { return err }
if info.IsDir() {
fmt.Println("[DIR]", path)
} else {
fmt.Printf("[FILE] %s (%d bytes)\n", path, info.Size())
}
return nil
})
if err != nil { fmt.Println("walk error:", err) }
}filepath.Glob — Pencocokan Pola
Temukan berkas yang cocok dengan pola glob:
package main
import ("fmt"; "path/filepath")
func main() {
// Find all .go files in current directory
matches, err := filepath.Glob("*.go")
if err != nil {
fmt.Println(err)
return
}
for _, m := range matches {
fmt.Println(m)
}
// Absolute path resolution
abs, _ := filepath.Abs("../myfile.txt")
fmt.Println(abs)
}os.TempDir dan os.CreateTemp
Buat berkas sementara dengan aman:
package main
import ("fmt"; "os")
func main() {
// System temp directory
fmt.Println(os.TempDir()) // /tmp
// Create a unique temp file
f, err := os.CreateTemp("", "myapp-*.json")
if err != nil {
fmt.Println(err)
return
}
defer os.Remove(f.Name()) // clean up
defer f.Close()
fmt.Println("temp file:", f.Name())
_, _ = f.WriteString(`{"status":"ok"}`)
}Pemeriksaan Singkat
Fungsi mana yang menggabungkan komponen jalur berkas dengan benar secara lintas platform?
Ringkasan: os dan filepath
Ringkasan:
os.Args— argumen perintah;os.Getenv/Setenv— lingkunganos.ReadFile/WriteFileuntuk I/O berkas sederhanaos.Stat— informasi berkas;os.IsNotExist(err)untuk berkas yang tidak adaos.MkdirAll/RemoveAlluntuk pengelolaan direktorifilepath.Join/Split/Ext/Baseuntuk jalur lintas platformfilepath.Walkuntuk menelusuri hierarki direktori
Belajar Go dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 51
- Pelajaran
- 203
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Paket os dan filepath” gratis?
Ya — teks lengkap “Paket os dan filepath” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Go Academy, upgrade ke CoddyKit PRO. Kursus Go Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Paket os dan filepath”?
Variabel lingkungan, path, dan interaksi dengan OS Kamu berlatih Go Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Go Academy?
Tidak diperlukan pengalaman sebelumnya. Go Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Paket os dan filepath” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Go Academy ini?
Ya. Setiap pelajaran Go Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Paket fmt dan strings
- strconv, math, dan sort
- Dasar-Dasar Paket time
- Paket os dan filepath