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 相关文章推荐
Golang二维切片初始化的实现
Apr 08 Golang
Go语言中break label与goto label的区别
Apr 28 Golang
解决Go gorm踩过的坑
Apr 30 Golang
解决go在函数退出后子协程的退出问题
Apr 30 Golang
Go语言实现Snowflake雪花算法
Jun 08 Golang
浅谈Go语言多态的实现与interface使用
Jun 16 Golang
go select编译期的优化处理逻辑使用场景分析
Jun 28 Golang
Go语言基础map用法及示例详解
Nov 17 Golang
一文搞懂Golang 时间和日期相关函数
Dec 06 Golang
Go语言 详解net的tcp服务
Apr 14 Golang
Golang 并发编程 SingleFlight模式
Apr 26 Golang
GoFrame基于性能测试得知grpool使用场景
Jun 21 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代码优化及php相关问题总结
2006/10/09 PHP
PHP UTF8编码内的繁简转换类
2009/07/20 PHP
完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题
2013/06/20 PHP
PHP封装的MSSql操作类完整实例
2016/05/26 PHP
php把时间戳转换成多少时间之前函数的实例
2016/11/16 PHP
PHP面向对象程序设计之多态性的应用示例
2018/12/19 PHP
Yii框架通过请求组件处理get,post请求的方法分析
2019/09/03 PHP
javascript实现二分查找法实现代码
2007/11/12 Javascript
JavaScript编程的10个实用小技巧
2014/04/18 Javascript
点击表单提交时出现jQuery没有权限的解决方法
2014/07/23 Javascript
jQuery实现冻结表头的方法
2015/03/09 Javascript
javascript实现的图片切割多块效果实例
2015/05/07 Javascript
详解JavaScript语言的基本语法要求
2015/11/20 Javascript
JavaScript实现经典排序算法之选择排序
2016/12/28 Javascript
JavaScript中变量、指针和引用功能与操作示例
2018/08/04 Javascript
浅谈在不使用ssr的情况下解决Vue单页面SEO问题(2)
2018/11/08 Javascript
vue-cli2 构建速度优化的实现方法
2019/01/08 Javascript
解决Layui中layer报错的问题
2019/09/03 Javascript
JS代码检查工具ESLint介绍与使用方法
2020/02/04 Javascript
sharp.js安装过程中遇到的问题总结
2020/04/02 Javascript
JS图片懒加载技术实现过程解析
2020/07/27 Javascript
[04:56]经典回顾:前Ehome 与 前LGD
2015/02/26 DOTA
[44:22]完美世界DOTA2联赛循环赛 FTD vs PXG BO2第一场 11.01
2020/11/02 DOTA
Pandas读取并修改excel的示例代码
2019/02/17 Python
解决Python内层for循环如何break出外层的循环的问题
2019/06/24 Python
python读取ini配置的类封装代码实例
2020/01/08 Python
MATLAB数学建模之画图汇总
2020/07/16 Python
python生成xml时规定dtd实例方法
2020/09/21 Python
HTML5本地存储之IndexedDB
2017/06/16 HTML / CSS
AmazeUI底部导航栏与分享按钮的示例代码
2020/08/18 HTML / CSS
小学生环保标语
2014/06/13 职场文书
神龙架导游词
2015/02/11 职场文书
上甘岭观后感
2015/06/10 职场文书
学习习近平主席讲话心得体会
2016/01/20 职场文书
go语言中json数据的读取和写出操作
2021/04/28 Golang
mapstruct的用法之qualifiedByName示例详解
2022/04/06 Java/Android