脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Golang - Go语言读取txt文档的操作方法

Go语言读取txt文档的操作方法

2022-08-31 10:02HCUBE Golang

Go语言提供了很多文件操作的支持,在不同场景下,有对应的处理方式,本节我们来介绍一下Go语言读取txt文档的相关知识,感兴趣的朋友跟随小编一起看看吧

读取文件是所有编程语言中最常见的操作之一。本教程我们将了解如何使用 Go 读取txt文档。

  1. 文档内容每行是一个文件名信息,含有空格区分不同项;
  2. ioutil.ReadFile返回的是[]bytes切片类型,使用string()转换为string类型,并用strings.Split()按行分割成切片;
  3. 把每行的文件名信息按空格分割成切片存入var dataNameSlice [][]string
  4. 每一行的文件名信息处理成一个string字符串,存入var dataName []string,这里用strings.Join()方法将前3项信息以下划线连接;
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package main
 
import (
    "fmt"
    "io/ioutil"
    "strings"
    "os"
)
func main() {
    fileName := "file1.txt"  // txt文件路径
    data, err_read := ioutil.ReadFile(fileName)   // 读取文件
    if err_read != nil {
        fmt.Println("文件读取失败!")
    }
    dataLine := strings.Split(string(data), "\n") // 将文件内容作为string按行切片
    var dataNameSlice [][]string                  // 用于存储每行内容的Slice
    var dataName []string                         // 整理每行内容成一个string
    for i, line := range(dataLine) {
        dataNameSlice = append(dataNameSlice, strings.Split(line, " "))       // 每行内容按空格分割成切片
        dataName = append(dataName, strings.Join(dataNameSlice[i][:3], "_"))  // 每行内容切片的前3项用_连成string
        dataName[i] = dataName[i] + ".md"
        // fmt.Println(dataName[i])
    for i, dataNameString := range(dataName) {
        if _, err := os.Stat(dataNameString); os.IsNotExist(err) { // 判断文件是否存在
            os.Create(dataNameString)
        } else {
            fmt.Printf("%d. [%s] File already exist!\n", i, dataNameString)
        }
}

补充:golang 按行读取文件

?
1
2
3
4
5
6
7
8
9
10
file, err := os.Open("app-2019-06-01.log")
    if err != nil {
        log.Fatal(err)
    }
    defer file.Close()
    scanner := bufio.NewScanner(file)
    for scanner.Scan() {
            lineText := scanner.Text()
 
        }

整个读取

?
1
2
3
4
5
6
b, err := ioutil.ReadFile("app-2019-06-01.log") // just pass the file name
        fmt.Print(err)
 
str := string(b) // convert content to a 'string'
 
fmt.Println(str) // print the content as a 'string'

到此这篇关于Go语言读取txt文档的文章就介绍到这了,更多相关Go读取txt文档内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/hcube/p/15506421.html

延伸 · 阅读

精彩推荐
  • GolangGo语言库系列之dotsql详解

    Go语言库系列之dotsql详解

    这篇文章主要介绍了Go语言库系列之dotsql的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友...

    平也4252020-06-08
  • GolangGo 中闭包的底层原理

    Go 中闭包的底层原理

    这篇文章主要介绍了Go 中闭包的底层原理,闭包的基本原理是一种现象,一个函数内引用了外部的局部变量的现象,带着些许的了解和小编一起进入文章正...

    写代码的明哥12392021-11-25
  • GolangGo之集合slice的实现

    Go之集合slice的实现

    本文主要介绍了Go之集合slice的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    小码哥Damon5932021-09-18
  • GolangGO语言实现批量压缩图片和水印

    GO语言实现批量压缩图片和水印

    这篇文章主要介绍了GO语言实现批量压缩图片和水印,主要用到了github.com/nfnt/resize这个第三方库,仅仅支持JPG图片格式,有相同需求的小伙伴参考下吧。...

    脚本之家2942020-04-24
  • GolangGolang实现http server提供压缩文件下载功能

    Golang实现http server提供压缩文件下载功能

    这篇文章主要介绍了Golang实现http server提供压缩文件下载功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要...

    Hoofffman9862021-03-24
  • Golanggo语言中的json与map相互转换实现

    go语言中的json与map相互转换实现

    本文主要介绍了go语言中的json与map相互转换实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面...

    焱齿9702022-08-16
  • Golanggolang利用pprof与go-torch如何做性能分析

    golang利用pprof与go-torch如何做性能分析

    这篇文章主要给大家介绍了关于golang利用pprof与go-torch如何做性能分析的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参...

    lpxxn3142020-05-17
  • GolangGo GORM 事务详细介绍

    Go GORM 事务详细介绍

    这篇文章主要介绍了Go GORM事务详细介绍,GORM 会在事务里执行写入操作创建、更新、删除,具体详细介绍需要的朋友可以参考下面文章的简单介绍...

    v2v17652022-07-31