GO语言基础语法 os | 青训营

95 阅读2分钟

Golang的os包是用于与操作系统进行交互的包,提供了一系列函数和类型,可以用于执行操作系统相关的任务,如文件操作、进程管理、环境变量等。 该包中的一些常用函数和类型包括:

  • os.Args:获取命令行参数。
  • os.Exit:终止当前程序并返回指定的退出状态码。
  • os.Getwd:获取当前工作目录。
  • os.Chdir:改变当前工作目录。
  • os.Mkdir:创建一个新目录。
  • func MkdirAll(path string, perm FileMode) error:使用指定的权限和名称创建一个文件夹,并自动创建父级目录(对于linux的mkdir -p目录)

常用方法:

  • func Create(name string) (file *File, err error):创建一个新文件。
  • func Open(name string) (file *File, err error):打开一个文件用于读取。
  • func OpenFile(name string, flag int, perm FileMode) (file *File, err error):更一般性的文件打开函数,大多数调用者都应用Open或Create代替本函数
  • func Remove(name string) error:Remove删除name指定的文件或目录。
  • func RemoveAll(path string) error:删除path指定的文件,或目录及它包含的任何下级对象。
  • func Rename(oldpath, newpath string) error:重命名文件或目录。

以上是比较常用的方法。

  • os.Stdinos.Stdoutos.Stderr:标准输入、标准输出和标准错误输出。
  • os.Environ:获取当前环境变量。
  • os.Getenv:获取指定的环境变量的值。
  • os.Setenv:设置指定的环境变量的值。
  • func Chmod(name string, mode FileMode) error:修改name文件或文件夹的权限(对应linux的chmod命令)
  • func Chown(name string, uid, gid int) error:修改name文件或文件夹的用户和组(对应linux的chmod命令)

同时os包中提供了一个os.File的结构体。该结构体实现了io包中的reader,writer接口,所以可以直接可以用进行io操作来读写。

比如我们打开了一个文件,想读取文件中的全部内容,我们可以使用os.File自身实现的read方法也可以使用ioutil或者bufio包中的方法。

实例:

import(
"os"
"io/ioutil"
"bufio"
"log"
)
 
func test(){
    file,err:=os.Open("./hello.txt")    //返回的file是os.File类型
    if err != ni {
        log.Fatal(err)
    }
    b, err := ioutil.ReadAll(file)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println(string(b))
}
 
func test(){
    file,err:=os.Open("./hello.txt")    //返回的file是os.File类型
    if err != ni {
        log.Fatal(err)
    } 
    bufreader := bufio.NewReader(file)
	for {
		line, _, err := bufreader.ReadLine()
		if err == io.EOF {
 
			break
		}
		fmt.Println(string(line))
	}
}