Go os包使用详解

49 min read

Go语言的os包提供了一些函数,可以方便地操作文件系统和操作系统。

获取命令行参数

使用os包中的Args变量可以获取命令行参数,Args是一个[]string类型的数组,第一个元素是命令本身,后面是参数。

package main

import (
    "fmt"
    "os"
)

func main() {
    // 打印命令行参数
    fmt.Println(os.Args)
}

创建、打开和关闭文件

使用os包中的Create函数可以创建一个新文件,Open函数可以打开一个已存在的文件,Close函数可以关闭一个文件。

package main

import (
    "fmt"
    "os"
)

func main() {
    // 创建文件
    f, err := os.Create("test.txt")
    if err != nil {
        fmt.Println(err)
        return
    }
    defer f.Close()

    // 写入数据
    _, err = f.WriteString("hello, world\n")
    if err != nil {
        fmt.Println(err)
    }
}

读取文件内容

使用os包中的Open函数打开文件,然后使用Read函数读取文件内容到一个[]byte数组中。

package main

import (
    "fmt"
    "os"
)

func main() {
    // 打开文件
    f, err := os.Open("test.txt")
    if err != nil {
        fmt.Println(err)
        return
    }
    defer f.Close()

    // 读取数据
    buf := make([]byte, 1024)
    n, err := f.Read(buf)
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(string(buf[:n]))
}

删除文件

使用os包中的Remove函数可以删除一个文件。

package main

import (
    "fmt"
    "os"
)

func main() {
    err := os.Remove("test.txt")
    if err != nil {
        fmt.Println(err)
        return
    }
}

除了上述函数,os包还提供了很多其他函数,比如复制文件、移动文件、获取当前工作目录、获取环境变量等。如果想要了解更多,可以查看Go语言官方文档。