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


Posted in Golang onJanuary 22, 2022

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

  1. 文档内容每行是一个文件名信息,含有空格区分不同项;
  2. ioutil.ReadFile返回的是[]bytes切片类型,使用string()转换为string类型,并用strings.Split()按行分割成切片;
  3. 把每行的文件名信息按空格分割成切片存入var dataNameSlice [][]string
  4. 每一行的文件名信息处理成一个string字符串,存入var dataName []string,这里用strings.Join()方法将前3项信息以下划线连接;
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 按行读取文件

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()
 
        }

整个读取

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文档内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Golang 相关文章推荐
基于go interface{}==nil 的几种坑及原理分析
Apr 24 Golang
golang中实现给gif、png、jpeg图片添加文字水印
Apr 26 Golang
Golang 实现超大文件读取的两种方法
Apr 27 Golang
基于Go Int转string几种方式性能测试
Apr 28 Golang
Go timer如何调度
Jun 09 Golang
修改并编译golang源码的操作步骤
Jul 25 Golang
Go语言基础map用法及示例详解
Nov 17 Golang
Go语言的协程上下文的几个方法和用法
Apr 11 Golang
Golang bufio详细讲解
Apr 21 Golang
Golang 并发编程 SingleFlight模式
Apr 26 Golang
详解Go语言中配置文件使用与日志配置
Jun 01 Golang
Go gRPC进阶教程gRPC转换HTTP
Jun 16 Golang
一文搞懂Golang 时间和日期相关函数
Go语言基础切片的创建及初始化示例详解
Nov 17 #Golang
Go语言基础map用法及示例详解
Nov 17 #Golang
Go语言基础函数基本用法及示例详解
Nov 17 #Golang
golang中的struct操作
Nov 11 #Golang
Go 语言中 20 个占位符的整理
Oct 16 #Golang
Golang中channel的原理解读(推荐)
Oct 16 #Golang
You might like
php实现把数组按指定的个数分隔
2014/02/17 PHP
yii框架redis结合php实现秒杀效果(实例代码)
2017/10/26 PHP
使用jquery为table动态添加行的实现代码
2011/03/30 Javascript
JQuery 1.6发布 性能提升,同时包含大量破坏性变更
2011/05/10 Javascript
无闪烁更新网页内容JS实现
2013/12/19 Javascript
教你如何使用firebug调试功能了解javascript闭包和this
2015/03/04 Javascript
深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解
2015/03/05 Javascript
JavaScript实现下拉列表框数据增加、删除、上下排序的方法
2015/08/11 Javascript
JS延时提示框实现方法详解
2015/11/26 Javascript
jQuery实现简单的图片查看器
2020/09/11 Javascript
简述jQuery ajax的执行顺序
2016/01/05 Javascript
JavaScript中子对象访问父对象的方式详解
2016/09/01 Javascript
原生JS和jQuery操作DOM对比总结
2017/01/19 Javascript
JavaScript基于Dom操作实现查找、修改HTML元素的内容及属性的方法
2017/01/20 Javascript
微信小程序中用WebStorm使用LESS
2017/03/08 Javascript
微信小程序实现轮播图效果
2017/09/07 Javascript
vue框架搭建之axios使用教程
2018/07/11 Javascript
通过函数作用域和块级作用域看javascript的作用域链
2018/08/05 Javascript
[03:05]《我与DAC》之xiao8:DAC与BG
2018/03/27 DOTA
python局域网ip扫描示例分享
2014/04/03 Python
Python字符串格式化
2015/06/15 Python
CentOS7.3编译安装Python3.6.2的方法
2018/01/22 Python
Python 编码规范(Google Python Style Guide)
2018/05/05 Python
Pycharm2017版本设置启动时默认自动打开项目的方法
2018/10/29 Python
新手入门Python编程的8个实用建议
2019/07/12 Python
python多线程案例之多任务copy文件完整实例
2019/10/29 Python
解决python执行较大excel文件openpyxl慢问题
2020/05/15 Python
eBay德国站:eBay.de
2017/09/14 全球购物
全球领先的全景影像品牌:Insta360
2019/08/21 全球购物
英国第一职业高尔夫商店:Clickgolf.co.uk
2020/11/18 全球购物
运动会广播稿200字
2014/01/15 职场文书
银行求职信范文
2014/05/26 职场文书
上班迟到检讨书
2014/09/15 职场文书
大学生党员自我批评思想汇报
2014/10/10 职场文书
话题作文之自信作文
2019/11/15 职场文书
为什么 Nginx 比 Apache 更牛逼
2021/03/31 Servers