①先把要导入的包go build - go install
使用go语言递归查找指定目录下的文件,根据正则匹配筛选出需要的文件,并且忽略指定的目录
先使用 ioutil.ReadDir 遍历出指定目录下的文件,再递归进目录中遍历,问题的关键在于识别出文件为目录, fs.FileInfo 中有一个 IsDir() 函数可以识别是否是目录
正则匹配使用 regexp.MatchString ,regexp中有很多正则操作的工具,如根据正则替换字符串中的指定字符
package main
import (
"fmt"
"github.com/jonas-p/go-shp"
"log"
"reflect"
)
func main() {
// open a shapefile for reading
reader, err := shp.Open("E:/example.shp")
if err != nil {
log.Fatal(err)
}
defer reader.Close()
// fields from the attribute table (DBF)
fields := reader.Fields()
//fmt.Println(reader.AttributeCount())
//for k, f := range fields {
// fmt.Println(k,f)
//}
////fmt.Println(reader.Attribute(0))
//loop through all features in the shapefile
for reader.Next() {
n, p := reader.Shape()
point := p.(*shp.Point)
x := point.X
y := point.Y
fmt.Println(x, y)
// print feature
? ? fmt.Println(reflect.TypeOf(p).Elem(), p.BBox())
// print attributes
? ? for k, f :=range fields {
val := reader.ReadAttribute(n, k)
fmt.Printf("\t%v: %v\n", f, val)
fmt.Println()
今天我们为大家讲解Go语言中文件读写的相关操作.
文件是什么?
计算机中的文件是存储在外部介质(通常是磁盘)上的数据集合,文件分为文本文件和二进制文件.
os.Open() 函数能够打开一个文件,返回一个 *File 和一个 err .对得到的文件实例调用 close() 方法能够关闭文件.
为了防止文件忘记关闭,我们通常使用defer注册文件关闭语句.
Read方法定义如下:
它接收一个字节切片,返回读取的字节数和可能的具体错误,读到文件末尾时会返回 0 和 io.EOF . 举个例子:
使用for循环读取文件中的所有数据.
bufio是在file的基础上封装了一层API,支持更多的功能.
io/ioutil 包的 ReadFile 方法能够读取完整的文件,只需要将文件名作为参数传入.
os.OpenFile() 函数能够以指定模式打开文件,从而实现文件写入相关功能.
其中:
name :要打开的文件名 flag :打开文件的模式. 模式有以下几种:
以上就是土嘎嘎小编为大家整理的go语言怎么获取文件相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!