107.【并发与标准库】(五)

简介: 107.【并发与标准库】

(三)、Golang标准库

1.标准库os模块之文件目录

(1).查看源码的两种方式

查看源码: https://pkg.go.dev/std

(2).操纵OS创建文件

GO语言操纵操作系统-> 创建一个可执行文件。如果多次执行同一个文件名,会产生覆盖不会报错误信息

create, err := os.Create("test.txt") //返回值: 第一个是文件对象,第二个是错误日志
package main
import (
  "fmt"
  "os"
)
/*
  利用GO语言进行操作 -> 操作系统
*/
func createFile() {
  create, err := os.Create("test.txt") //返回值: 第一个是文件对象,第二个是错误日志
  if err != nil {
    println(err)
  } else {
    fmt.Printf("恭喜您文件创建成功,文件名是:%v", create.Name())
  }
}
func main() {
  createFile() //如果多次调用,会直接覆盖
}

(3).操纵OS创建文件目录
  1. 第一种创建单极目录
package main
import (
  "fmt"
  "os"
)
/*
  利用GO语言进行操作 -> 操作系统
*/
func makeDir() {
  err := os.Mkdir("test", os.ModePerm) //第一个参数是目录名,第二个参数是目录权限
  if err != nil {
    println(err)
  } else {
    fmt.Printf("恭喜您创建成功!")
  }
}
func main() {
  makeDir()
}
  1. 第二种创建联机目录
package main
import (
  "fmt"
  "os"
)
/*
  利用GO语言进行操作 -> 操作系统
*/
func makeDirAll() {
  err := os.MkdirAll("test/b/c/d", os.ModePerm)
  if err != nil {
    println(err)
  } else {
    fmt.Printf("恭喜您创建成功!")
  }
}
func main() {
  //createFile() //如果多次调用,会直接覆盖
  makeDirAll()
}

(4).操纵OS删除文件
  1. 删除文件信息
package main
import (
  "fmt"
  "os"
)
/*
  利用GO语言进行操作 -> 操作系统
*/
func remove() {
  err := os.Remove("test.txt")
  if err != nil {
    println(err)
  } else {
    fmt.Printf("删除成功!")
  }
}
func main() {
  remove()
}

  1. 联机删除文件目录
package main
import (
  "fmt"
  "os"
)
/*
  利用GO语言进行操作 -> 操作系统
*/
func remove() {
  err := os.RemoveAll("test") //会联机删除文件类似于 :  rm -rf /*
  if err != nil {
    fmt.Printf("%v", err)
  } else {
    fmt.Printf("删除成功!")
  }
}
func main() {
  remove()
}

(5)操纵OS 获取目录地址/修改目录地址/修改目录名
package main
import (
  "fmt"
  "os"
)
/*
  利用GO语言进行操作 -> 操作系统
*/
func wd() {
  getwd, err := os.Getwd()   //  获取当前的工作路径
  if err != nil {
    fmt.Printf("%v\n", err)
  } else {
    fmt.Printf("当前目录是: %v", getwd)
  }
  os.Chdir("d:/")  //把工作目录修改到我们设定的目录
  os.Rename("test.txt","test2.txt")  //  把test目录名修改成test2.txt
}
func main() {
  wd()
}
(6).操纵OS从某一个文件中读或者写
  1. 文件的读取

文件读取的时候是byte字节,我们需要将其转换成string

package main
import (
  "fmt"
  "os"
)
/*
  利用GO语言进行操作 -> 操作系统
*/
func read() {
  file, err := os.ReadFile("test.txt") //  返回的是文件信息和错误信息
  if err != nil {
    fmt.Printf("%v", err)
  } else {
    fmt.Printf("读取的文件信息是: %v", string(file[:])) // 读取的是一个个字节,我们需要将其转换成字符串
  }
}
func main() {
  read()
}

  1. 写的操作

字节数组传入的操作....

package main
import (
  "os"
)
/*
  利用GO语言进行操作 -> 操作系统
*/
func write() {
  s := "你好,全名制作人"
  os.WriteFile("test.txt", []byte(s), os.ModePerm) // 第一个参数是写哪里,第二个参数是内容(需要转换为byte),第三个是权限设置
}
func main() {
  write()
}

相关文章
|
4月前
|
算法 数据处理 Python
Python并发编程:解密异步IO与多线程
本文将深入探讨Python中的并发编程技术,重点介绍异步IO和多线程两种常见的并发模型。通过对比它们的特点、适用场景和实现方式,帮助读者更好地理解并发编程的核心概念,并掌握在不同场景下选择合适的并发模型的方法。
|
12月前
|
缓存 Go
107.【并发与标准库】(二)
107.【并发与标准库】
38 0
|
12月前
|
缓存 Go C语言
107.【并发与标准库】(七)
107.【并发与标准库】
45 0
|
4月前
|
数据采集 数据库 C++
python并发编程:并发编程中是选择多线程呢?还是多进程呢?还是多协程呢?
python并发编程:并发编程中是选择多线程呢?还是多进程呢?还是多协程呢?
46 0
|
12月前
|
缓存 索引
107.【并发与标准库】(九)
107.【并发与标准库】
32 0
|
10月前
|
编译器 Linux 调度
|
15天前
|
消息中间件 存储 安全
python多进程并发编程之互斥锁与进程间的通信
python多进程并发编程之互斥锁与进程间的通信
|
2月前
|
数据采集 算法 数据处理
Python中的并发编程:异步IO与多线程对比分析
传统的多线程编程在Python中因为全局解释器锁(GIL)的存在受到限制,导致多线程并不能充分利用多核处理器的优势。本文将探讨Python中的异步IO编程与多线程编程的差异与优劣,并分析适合的应用场景。
|
3月前
|
并行计算 API Python
Python中的并发编程(1)并发相关概念
Python中的并发编程(1)并发相关概念
|
4月前
|
消息中间件 程序员 调度
Python并发编程:利用多线程提升程序性能
本文探讨了Python中的并发编程技术,重点介绍了如何利用多线程提升程序性能。通过分析多线程的原理和实现方式,以及线程间的通信和同步方法,读者可以了解如何在Python中编写高效的并发程序,提升程序的执行效率和响应速度。