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项目中使用init()
Apr 12 Golang
彻底理解golang中什么是nil
Apr 29 Golang
聊聊golang中多个defer的执行顺序
May 08 Golang
go goroutine 怎样进行错误处理
Jul 16 Golang
手把手教你导入Go语言第三方库
Aug 04 Golang
Go语言基础map用法及示例详解
Nov 17 Golang
Go语言的协程上下文的几个方法和用法
Apr 11 Golang
Golang 链表的学习和使用
Apr 19 Golang
Golang 并发编程 SingleFlight模式
Apr 26 Golang
Golang入门之计时器
May 04 Golang
深入理解 Golang 的字符串
May 04 Golang
Go语言测试库testify使用学习
Jul 23 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动态生成缩略图并输出显示的方法
2015/04/20 PHP
php 数组随机取值的简单实例
2016/05/23 PHP
Yii2中如何使用modal弹窗(基本使用)
2016/05/30 PHP
php判断是否为ajax请求的方法
2016/11/29 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
2016/11/30 PHP
php封装json通信接口详解及实例
2017/03/07 PHP
ZendFramework2连接数据库操作实例
2017/04/18 PHP
PHP判断是否是微信打开,浏览器打开的方法
2018/03/14 PHP
PHP使用文件锁解决高并发问题示例
2018/03/29 PHP
PHP命名空间用法实例分析
2019/09/04 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
ExtJS 入门
2010/10/29 Javascript
js 鼠标移动显示图片的简单实例
2013/12/25 Javascript
js登录弹出层特效
2014/03/07 Javascript
用js闭包的方法实现多点标注冒泡示例
2014/05/29 Javascript
js生成随机数的方法实例
2015/10/16 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(基于jquery)
2015/11/18 Javascript
JavaScript继承学习笔记【新手必看】
2016/05/10 Javascript
js匿名函数作为函数参数详解
2016/06/01 Javascript
JavaScript兼容性总结之获取非行间样式案例
2016/08/07 Javascript
JS前向后瞻正则表达式定义与用法示例
2016/12/27 Javascript
Angular.js自动化测试之protractor详解
2017/07/07 Javascript
JS运动特效之完美运动框架实例分析
2018/01/24 Javascript
bootstrap下拉框动态赋值方法
2018/08/10 Javascript
angular.js实现列表orderby排序的方法
2018/10/02 Javascript
js消除图片小游戏代码
2019/12/11 Javascript
ES6 async、await的基本使用方法示例
2020/06/06 Javascript
Python中正则表达式的用法实例汇总
2014/08/18 Python
python脚本监控docker容器
2016/04/27 Python
python 使用值来排序一个字典的方法
2018/11/16 Python
Python从Excel中读取日期一列的方法
2018/11/28 Python
python scatter函数用法实例详解
2020/02/11 Python
《二泉映月》教学反思
2014/04/15 职场文书
法制宣传月活动方案
2014/05/11 职场文书
贫困证明模板(3篇)
2014/09/16 职场文书
小区保洁员岗位职责
2015/04/10 职场文书